,因为你已经创建了一个无限循环你得到一个500错误。
说明:(当斜线由可选)
domain.com/page_name/
改写为/?page=page_name
/?page=page_name
意味着/index.php?page=page_name
- 但现在您的规则匹配
index.php
太
- - > LOOP
为了避免它,可以如果请求的URI是不存在的文件/文件夹的前rewritting使用此代码代替
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /?page=$1 [L]
此代码检查。
如果您没有使斜线可选,则您的规则可以执行此操作只有。
RewriteRule ^([^/]+)/$ /?page=$1 [L]
而且这将是一个更好的主意,因为你不会有重复的内容(2个不同的网址 - 附/不带尾随slash-给予相同的内容:坏的搜索引擎)。
结论:选择一种格式,但不是两种。如果你选择without trailing slash
格式,那么你可以使用我的第一部分代码(你可以删除?
)。否则,你可以选择我的第二个(看起来与你的几乎一样)。
注意:你不需要逃避/
与mod_rewrite的
'重写规则^([^ /] *)(?:\ /)?$ /页= $ 1 [L]'是什么你要。 – Forien