htaccess用多个查询重写?

时间:2015-03-04 20:55:42

标签: .htaccess

我有SEO友好的网址工作正常,但我已经改变了我的文件目录,需要调整一些东西,但我似乎无法让这个工作。

基本上我是通过htaccess

之后的事情
$1.php?id=$2&subid=$3

以后可能会有更多疑问,任何想法?

我不喜欢列出每个页面,但宁愿动态地执行此操作。 htaccess适用于$ 1.php页面,但我无法弄清楚如何添加额外的$'

Options +FollowSymlinks
RewriteEngine On
RewriteBase /v2/
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,NC]

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^/]+)/?$ $1.php [L,NC]

https://steve-morris.co.uk/v2/services有效但https://steve-morris.co.uk/v2/property/to-rent没有

基本上是在

之后
https://steve-morris.co.uk/v2/property/to-rent

链接到

https://steve-morris.co.uk/v2/property.php?id=to-rent

https://steve-morris.co.uk/v2/services/hello/this-is-a-service

转到

https://steve-morris.co.uk/v2/services.php?id=hello&subid=this-is-a-service

但是我觉得它很动态,因此我不必为每个页面写一次重写

2 个答案:

答案 0 :(得分:1)

基本上你应该能够添加其他规则。

Options +FollowSymlinks
RewriteEngine On
RewriteBase /v2/
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ $1.php?id=$2&subid=$3 [L,NC,QSA]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/?$ $1.php?id=$2 [L,NC,QSA]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^/]+)/?$ $1.php [L,NC,QSA]

让我知道这是怎么回事。

答案 1 :(得分:0)

最后一行应该是这样的:

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ $1.php?id=$2&subid=$3 [L,NC]
RewriteRule ^([^/]+)/([^/]+)/?$ $1.php?id=$2 [L,NC]
RewriteRule ^([^/]+)/?$ $1.php [L,NC]