我正在尝试将.htaccess文件放在一起执行以下操作:
1)从from:
重写URL params www.domain.com/page.php?key0=val0&key1=val1 ...
到
www.domain.com/page.php/key0/val0/key1/val1 ...
2)删除.php扩展名如此
www.domain.com/page.php
变为www.domain.com/page
最终结果应为:
www.domain.com/page/key0/val0/key1/val1 ...
我拼凑了这个.htaccess并且它满足1)和2)但它有问题。
RewriteEngine on
ErrorDocument 400 /book/ServiceUnavailable
ErrorDocument 401 /book/ServiceUnavailable
ErrorDocument 404 /book/PageNotFound
ErrorDocument 500 /book/ServiceUnavailable
#change homepage /directory
DirectoryIndex index.php index.htm
#enable gzip compression
SetOutputFilter DEFLATE
RewriteRule ^([^/]+)/([^/]+)/([^/]+)(.*?)/?$ $1/$4?$2=$3 [L,QSA]
RewriteRule ^([^/]+)/$ $1.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC] [QSA] [L]
它有两个问题:
a)我在某些图片上以及包含的javascript文件中出现404错误。我包含直接从doc root引用它们的js文件,但是我收到404错误:GET http://localhost/book/js/vendor/modernizr-2.6.2.min.js 404 (Not Found)
b)当我在URL的末尾键入斜杠时,出现“内部服务器错误”错误:例如www.domain.com/page/
导致内部服务器错误。
有人可以帮助我a),可能通过调整我的规则来排除.js,.png,.jpg等文件并修复问题b)?
谢谢!