.htaccess 友好的 URL 奇怪的行为
Posted
技术标签:
【中文标题】.htaccess 友好的 URL 奇怪的行为【英文标题】:.htaccess friendly URLs weird behavior 【发布时间】:2016-12-27 22:48:40 【问题描述】:我的服务器上有一个query.php
文件,其位置是ROOT_DIRECTORY/info/query.php
。
在我在 .htaccess 文件中使用友好的 URL 之前,脚本没有问题。我已经将它们用于许多脚本并且它们工作得非常好,但是当我添加这两行时
RewriteRule info/([a-zA-Z]*)/ info/query.php?slot=$1
RewriteRule info/([a-zA-Z]*) info/query.php?slot=$1
在我的 query.php 文件的 .htaccess 文件中,它给了我以下错误。
资源被解释为样式表,但使用 MIME 类型 text/html 传输:“http://example.com/info/css/reset.css”。
资源被解释为样式表,但使用 MIME 类型 text/html 传输:“http://example.com/info/css/style.css”。
(index):27 Uncaught ReferenceError: $ is not defined
但是,当我删除 .htaccess 文件中的这两行时,没有错误并且我的脚本按预期运行。
可能是什么问题?我做错了什么导致这种意外行为?
谢谢!
如果有人想要 query.php 文件,我也可以上传。请在 cmets 中写入代码。
【问题讨论】:
我的最佳猜测,但这可能无法解决您的问题:重写规则会重写所有文件,包括您的 css 文件,而不仅仅是您的 php 或 html 文件。尝试将其仅限于这些文件。 感谢您告诉我有关此信息,我不知道。如何将其限制为该特定文件? 类似:RewriteRule ^info/(.*)\.php$ info/query.php?slot=$1
(未经测试),但最好看一下手册:httpd.apache.org/docs/2.0/misc/rewriteguide.html
谢谢,伙计。它有效,写下答案,我会选择正确的。
哇,我真的没想到。 :-)
【参考方案1】:
问题可能在于您还“重写”了 CSS 文件。所以它们也会被query.php
处理。这不是你想要的。
尝试将重写规则仅限于 PHP 文件,如下所示:
RewriteRule ^info/(.*)\.php$ info/query.php?slot=$1
这也适用于所有文件名,即使它们被命名为:this_is_my_file.php
。
【讨论】:
以上是关于.htaccess 友好的 URL 奇怪的行为的主要内容,如果未能解决你的问题,请参考以下文章