2013-07-01 28 views
0

重定向我有一个动态的网站,并从.htaccess文件创建干净网址:页面不被htaccess的

RewriteCond %{REQUEST_URI} !(\.png|\.jpg|\.gif|\.jpeg|\.bmp)$ 
RewriteRule ^([a-zA-Z0-9_\-\+\ ]+)$ flight.php?flights=$1&slug=$1 

此代码工作对我很好,但是当我创建了一个新的页面类型,并试图让干净网址以相同的代码,即:

RewriteCond %{REQUEST_URI} !(\.png|\.jpg|\.gif|\.jpeg|\.bmp)$ 
RewriteRule ^([a-zA-Z0-9_\-\+\ ]+)$ manual-page.php?url=$1&slug=$1 

这不是工作,如果我评论了前两行,然后它工作正常。

一次只能有一个代码正在工作。

首先,我有一个URL domain.com/flight.php?flight-san-fransisco-london-flights,我希望它会被重定向到domain.com/san-fransisco-london-flights &从第二个我有domain.com/manual-page.php?url=my-new-page,我想这是重定向todomain.com/my-new-page。

难道这两种方法可以让两者协同工作吗?

+0

[欢迎来到SO,不要忘了**采取SO巡回赛**它会指导你如何最好地使用SO](http://stackoverflow.com/about ) – Prix

回答

1

您需要测试某些条件 - 或者让Apache检测您想要规则2还是规则1的方法。也许有一些前缀关键字?

RewriteCond %{REQUEST_URI} !(.png|.jpg|.gif|.jpeg|.bmp)$ 
RewriteRule ^flights-([a-zA-Z0-9_-+\ ]+)$ flight.php?flights=$1&slug=$1 
RewriteRule ^manual-([a-zA-Z0-9_-+\ ]+)$ manual-page.php?url=$1&slug=$1 
0

您必须对您的规则更加具体。尝试这样的:

RewriteCond %{REQUEST_URI} !(\.png|\.jpg|\.gif|\.jpeg|\.bmp)$ 
RewriteRule ^.*\.php?([a-zA-Z0-9_\-\+\ ]+)$ $1 
RewriteCond %{REQUEST_URI} !(\.png|\.jpg|\.gif|\.jpeg|\.bmp)$ 
RewriteRule ^.*\.php?([a-zA-Z0-9_\-\+\ ]+)$ $1