.htaccess规则到友好的URL不起作用

时间:2018-01-03 10:39:07

标签: .htaccess mod-rewrite

我正在尝试为友好网址创建规则。我只是在Stack Overflow中寻找其他示例,但找不到解决方案。我很确定代码是正确的,但它不起作用。

例如:/index.php?p=about必须变为/about

此规则有效:

RewriteRule ^about/?$ index.php?p=about

但是这个(适用于所有页面)不是:

RewriteRule ^([^/]*)$ /index.php?p=$1 [L]

我想使用第二条规则来处理所有页面,而不仅仅是关于页面。愿任何人帮忙吗?

1 个答案:

答案 0 :(得分:1)

将您的第二条规则更改为:

# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ index.php?p=$1 [L,QSA]

QSA(查询字符串追加)标志在添加新查询参数时保留现有查询参数。