1

基本上我已经创建了一个 PHP 网站,它使用其他网站的 API 来提取数据。我的问题是我收到 Error 404 。

我在下面添加了代码.htaccess

 RewriteRule ^sort/(.*) index.php?by=$1

这使 website.com/sort/gender 工作!

但是后来我添加了另一个页面名称 user.php

RewriteRule ^profile/(.*) user.php?name=$1

website.com/profile/username

但我想展示

website.com/profile/username/bookmarks

代替

website.com/profile/username?by=bookmarks

我的完整 .htaccess 代码如下:

RewriteEngine on
Options +FollowSymLinks -MultiViews
RewriteBase /
ErrorDocument 404 /404.php
RewriteRule ^sort/(.*) index.php?by=$1
RewriteRule ^profile/(.*) user.php?name=$1
RewriteRule    ^privacy/?$    privacy.php    [NC,L]
4

2 回答 2

0

您可以像这样添加另一个带有 2 个通配符的重写规则:

RewriteRule ^profile/(.*)/(.*) user.php?name=$1&by=$2
RewriteRule ^profile/(.*) user.php?name=$1
于 2013-11-12T16:00:47.227 回答
0

您现有的重写规则中有一些缺失的标志和不正确的正则表达式。

您的完整 .htaccess 将是这样的:

ErrorDocument 404 /404.php

RewriteEngine on
Options +FollowSymLinks -MultiViews
RewriteBase /

RewriteRule ^sort/([^/]+)/?$ index.php?by=$1 [L,NC,QSA]

RewriteRule ^(profile)/([^/]+)/([^/]+)/?$ $1/$2?by=$3 [L,NC,QSA]

RewriteRule ^profile/([^/]+)/?$ user.php?name=$1 [L,NC,QSA]

RewriteRule ^privacy/?$ privacy.php [NC,L,QSA]
于 2013-11-12T16:57:15.733 回答