单个文件的mod_rewrite问题没有查询字符串

时间:2015-04-29 01:13:53

标签: php apache .htaccess mod-rewrite

尝试使用mod-rewrite来更改地址栏与正在加载的实际页面。当我有一个要使用的查询字符串时它很有用,但我需要在没有查询字符串的情况下完成它,只需要一个直接的漂亮网址。

似乎没有查询字符串,直接mod_rewrites到文件只显示带扩展名的实际文件名。

这是我的htaccess的样子:

Options +FollowSymLinks

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L,R=301]

这有效:

RewriteRule ^admin/account/([^/]*)/$ /adminconfig/account.php?id=$1 [L]

这不是:

RewriteRule ^admin/account/$ /adminconfig/account.php [L]

我发现的地址栏中发生了什么:

example.com/adminconfig/account.php/

应该是:

example.com/admin/account/

1 个答案:

答案 0 :(得分:1)

你需要像这样做你的规则。我还确保多视图关闭

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin/([^/]+)/?$ /adminconfig/$1.php [L]

此规则应允许您在地址栏中使用如下所示的网址

example.com/admin/account/