基本上我已经创建了一个PHP网站,它使用其他网站的API来提取数据。 我的问题是我得到错误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]
答案 0 :(得分:0)
你可以在其中添加另外一个带有2个通配符的rewriterule:
RewriteRule ^profile/(.*)/(.*) user.php?name=$1&by=$2
RewriteRule ^profile/(.*) user.php?name=$1
答案 1 :(得分: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]