所以现在,我的网站从 www.example.com/username 重新路由到他们的个人资料页面,但我希望它从 www.example.com/users/username 重新路由。我目前的代码是这样的:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^'.]+)$ $1.php [NC]
RewriteCond %{REQUEST_FILENAME} >""
RewriteRule ^([^'.]+)$ profile.php?user=$1 [L]
我尝试使用此代码,但它给了我一个错误,说找不到该页面:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^users/([^'.]+)$ $1.php [NC]
RewriteCond %{REQUEST_FILENAME} >""
RewriteRule ^users/([^'.]+)$ profile.php?user=$1 [L]
我尝试了其他选择,但我似乎无法让它们工作。我是否需要一个实际的/users 文件夹,或者应该在不使用另一个文件夹的情况下重定向?
您可以按给定顺序使用这些规则:
RewriteEngine on
RewriteRule ^users/(['w-]+)/?$ profile.php?user=$1 [L,QSA,NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
此规则:
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^users/([^'.]+)$ $1.php [NC]
将/users/foo.php
重写为foo.php
我认为这不是您想要的。
我认为它就像
:RewriteRule ^users/(.+)$ profile.php?user=$1 [NC]
如果文件夹users
不存在,则不需要RewriteCond
如果你想要[^'.]+
而不是.+
那很好,但我认为你不需要它。