2014-03-12 33 views
0

所以,前一段时间我就贴出的.htaccess Rewrite Conditions和我如何能实现更可读的URL的问题。这样的URL会喜欢这样的东西:http://somedomain.com/variable/variable/variable/的.htaccess的RewriteCond(文件夹存在,但仍然被传递到处理函数)

RewriteCond工作完美,但现在我注意到一些影响。正在使用.htaccess子目录(在我的情况,我用它来AuthUser)由根.htaccessRewriteCond声明忽略。我试图指定包含.htaccess的文件夹,但它是一个命中或缺失。在一台电脑上,它工作的很好,我可以很好地访问网址,但在另一台电脑上,我不能。什么最终结束了发生的事情是我试过的URL去(在这种情况下,“/定价”)结束变量(定价)传递到我的索引处理。

因此,事不宜迟,在这里它是:

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} !^/pricing 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !index\.php       [NC] 
RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)/([^/]+)/([^/]+)/? [NC,OR] 
RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)/([^/]+)/? [NC,OR] 
RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)/? [NC,OR] 
RewriteCond %{REQUEST_URI} ^/([^/]+)/? [NC] 
RewriteRule . index.php?prefix=%1&month=%2&day=%3&title=%4 [L,NC] 

有什么人在这里建议改变?我的意思是,我不明白另一.htaccess在一个子目录是如何导致这种情况发生。

谢谢 克里斯

+0

(例如,通过'http:// example.com /定价/ shoes',它会谘询配置文件在'/定价/ shoes' ,'/ pricing','/'和主要配置(httpd.conf文件),除非它的地方。除此之外遇到'END'标志,我没有真正理解这个问题(可能只是我)。 – Sumurai8

回答

0

你有结构的规则,它不会工作,因为拍摄的变量仅能从最近的RewriteCond的方式。

你可以这样做,而不是:当你请求一个URL

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_URI} !^/pricing 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)(?:/([^/]*)(?:/([^/]*)(?:/([^/]*))?)?)?/?$ index.php?prefix=%1&month=%2&day=%3&title=%4 [QSA,L] 
相关问题