1

我正在尝试组合一个 .htaccess 文件来执行以下操作:

1) 从以下地址重写 URL 参数:

 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]

它有2个问题:

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/ 导致内部服务器错误。

有人可以通过调整我的规则以排除 .js、.png、.jpg 等文件并解决问题 b) 来帮助我吗?

谢谢!

4

0 回答 0