包含文件扩展名时,RewriteRule不起作用

时间:2010-12-13 17:03:41

标签: regex .htaccess mod-rewrite

嘿,我正在尝试使用mod_rewrite让http://example.com/style/universal.css显示页面http://example.com/style.php?n=universal

我目前正在使用以下RewriteRule

RewriteRule ^style/([^/\.]+)\.css$ style.php?n=$1

但它似乎不起作用,出于某种原因,它显示404 Not Found甚至不是正确的404页面。

我尝试使用.css

在没有扩展名http://example.com/style/universal(即RewriteRule)的情况下进行此操作
RewriteRule ^style/([^/\.]+)$ style.php?n=$1

哪个有效,但如果我能使用.css扩展名,我会更喜欢它。

如果使用文件扩展名,服务器似乎忽略了RewriteRule。是否有RewriteCond或明显缺少的东西?

我还应该提一下,父目录中有.htaccess由WordPress设置,其内容为:

RewriteEngine on

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]
</IfModule>

# END WordPress

真的很感激任何帮助。

提前致谢,布拉德。

1 个答案:

答案 0 :(得分:0)

设置mod_rewrite以记录处理网址的所有步骤

RewriteLog "/tmp/mysite_rewrite.log"
RewriteLogLevel 6

阅读日志,你应该能够理解你的网址是如何被重写的,以及问题是什么。