我当前的url:http://website.com/user.php?user=jon我想要它的样子:http://website.com/jon
这是我目前在htaccess文件中的内容
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST-FILENAME} !-d
RewriteCond %{REQUEST-FILENAME} !-f
RewriteCond %{REQUEST-FILENAME} !-l
RewriteRule . user.php?user=%{REQUEST-FILENAME}
但它不起作用。
您需要将-更改为_-它是REQUEST_FILENAME而不是REQUEST-FILENAME
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . user.php?user=%{REQUEST_FILENAME}
我更喜欢使用规则的regex部分
RewriteRule ^(.*)$ user.php?user=$1 [NC,L]
您的虚拟主机或Apache配置中是否为该目录启用了AllowOverride?
例如
<Directory "/">
AllowOverride All
</Directory>
如果没有,那么您的本地htaccess文件将被忽略。此外,您是否启用了mod_rewrite?
如果不确定,请检查Apache日志文件。
https://httpd.apache.org/docs/2.4/mod/core.html#allowoverride