我在ubuntu上,我有清漆缓存,我搜索了很多但是找不到它,
当我进入
http://127.0.0.1/soccer
此uri表示需要soccer.php,我的浏览器会将我重定向到
http://127.0.0.1:8000/soccer/?tab_id=soccer
但是当我输入时,
http://127.0.0.1/soccer/
这个工作正常而有趣的是,这个问题只发生在“足球”和“保存”关键字中,
这是我的.htaccess
# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
# Or, compress certain file types by extension:
<files *.php>
SetOutputFilter DEFLATE
</files>
<files *.html>
SetOutputFilter DEFLATE
</files>
RewriteEngine On
Options -MultiViews
RewriteRule ^([//0-9a-zçöşığüA-ZÇÖŞİĞÜ-]+)$ tab.php?tab_id=$1 [QSA,L]
答案 0 :(得分:0)
这里发生的事情可能是mod_dir干扰了URI的处理。默认情况下,如果加载了mod_dir,它会在缺少尾部斜杠时认为映射到目录的URI末尾添加一个尾部斜杠。当URL /文件映射管道导致文件处理的目录(例如通过mod_rewrite)时,这会导致问题,mod_dir不知道因为这发生在管道的下游,因此mod_dir将URI标记为重定向,然后在管道中进一步向下(或向上)发生其他事情,最终导致由多个模块处理的URI在重定向不应该发生时被重定向。
澄清一下,当我的意思是“它将在URI的末尾添加一个尾部斜杠”时,我的意思是mod_dir 302将浏览器重定向到相同的URI,除了它以尾随结尾斜线。
您可以尝试以下几点:
通过添加DirectorySlash Off
来关闭mod_dir。这使得mod_dir不会重定向浏览器,而是note that there are other consequences to turning this off。您可以在htaccess文件中添加该指令。
处理mod_rewrite中的尾部斜杠:
RewriteEngine On
Options -MultiViews
RewriteRule ^([//0-9a-zçöşığüA-ZÇÖŞİĞÜ-]+)$ /$1/ [L,R=301]
RewriteRule ^([//0-9a-zçöşığüA-ZÇÖŞİĞÜ-]+)/$ tab.php?tab_id=$1 [QSA,L]