的.htaccess重写不工作
我目前的网址:http://website.com/user.php?user=jon 我希望它看起来像:http://website.com/jon的.htaccess重写不工作
这是我目前在我的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不请求文件名
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . user.php?user=%{REQUEST_FILENAME}
我更喜欢使用规则的正则表达式部分
RewriteRule ^(.*)$ user.php?user=$1 [NC,L]
好的地方,我看到他们作为下划线,我也会改变最后一行为 RewriteRule ^(。*)$ user.php?user = $ 1 [NC,L] –
@JamesLockhart你想编辑和我将批准它,你可以得到一些声誉 – Brett
完成,并感谢:) –
您是否在虚拟主机或Apache配置中为该目录启用了AllowOverride?
例如
<Directory "/">
AllowOverride All
</Directory>
如果没有,那么你的本地htaccess文件将被忽略。另外,你是否启用了mod_rewrite?
如果不确定检查您的Apache日志文件。
https://httpd.apache.org/docs/2.4/mod/core.html#allowoverride
我的主机不允许我修改apache配置。 当我把最后一行改为'RewriteRule。 user.php?user =%jon'它的工作原理,但只把我带到那个页面。 – Critical
你可以也可以尝试 - RewriteRule(。*)user.php?user = $ 1 – Brett
可以工作;有点。 它让我到我想要的页面,但它说用户不在数据库中。 – Critical
你可以做一个print_r($ _ GET);在这个页面上加载并向我们展示你的问题的输出(甚至可以在user.php上发布代码) – Brett