Php .htaccess代码mod重写代码清理
我是一个新的在这个模块重写的事情 我正在尝试做一些基本的重定向Php .htaccess代码mod重写代码清理,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我是一个新的在这个模块重写的事情 我正在尝试做一些基本的重定向 Options +FollowSymLinks RewriteEngine on ErrorDocument 404 /index.php RewriteCond %{HTTP_HOST} ^pickndrive.info RewriteRule (.*) http://www.pickndrive.info/$1 [R=301,L] RewriteRule ^new/cars/([^/]+)/([^/]+)/? profiles.
Options +FollowSymLinks
RewriteEngine on
ErrorDocument 404 /index.php
RewriteCond %{HTTP_HOST} ^pickndrive.info
RewriteRule (.*) http://www.pickndrive.info/$1 [R=301,L]
RewriteRule ^new/cars/([^/]+)/([^/]+)/? profiles.php?carname=$2&carnumb=$1 [L]
RewriteRule ^used/cars/([^/]+)/([^/]+)/? used.php?carname=$2&carnumb=$1 [L]
RewriteRule ^compare/([^/]+)/([^/]+)/([^/]+)/? compare.php?car[]=$1&car[]=$2&car[]=$3 [L]
RewriteRule ^compare/([^/]+)/([^/]+)/? compare.php?car[]=$1&car[]=$2 [L]
RewriteRule ^compare/([^/]+)/? compare.php?car[]=$1 [L]
那是我的。但它的状况非常糟糕
我想做的是。
1) 试图告诉谷歌pickdrive.info和www.pickdrive.info是一样的
2) 将/new(或used)/cars/(INT-value)/(string)重定向到X.php?carname=(string)和carnumb=(INT)
3)将/cars/(STRING)重定向到搜索页面search.php?query=$1
4)重定向/cars到browse.php?#选项卡全部
5) 重定向compare/*/(最多3次)以比较.php?car[]=X1&car[]=X2&car=X3
好吧,到目前为止,这是它的工作。但我无法让3/4号目标发挥作用,因为如果我这样做,他们只会把其余的都搞糟:(
有人能告诉我如何写一个干净的.htaccess mod rewrite吗:)像这样的3/4
你应该可以在最后加上这个。请注意,#tabs all
不会被翻译为重写,因为这是浏览器在客户端处理的事情,而服务器则无能为力。您可以添加一些javascript自动让浏览器进入#选项卡,所有这些选项卡都在browse.php中使用一些javascript
我不知道除了3个“比较”规则外,还有没有更干净的方法来做5,1和2都可以。如果将(或符号链接)“search.php”重命名为“new.php”,则可以将这两条规则组合为:
RewriteRule ^([^/]+)/cars/([^/]+)/([^/]+)/? $1.php?carname=$3&carnumb=$2 [L]
但我认为最好明确地排除/new/cars/和/used/cars/,因为这条规则也会将“/qwerty/cars/”重写为“qwerty.php”…“问题是如果我这样做了,那么重写规则^cars/?browse.php[L]或任何其他基于cars/的规则?它还会混淆从new/cars/qwerty/qwerty加载的图像和js文件。
^
指示表达式必须在开头匹配。所以“^cars/”永远不会匹配“new/cars”
RewriteRule ^([^/]+)/cars/([^/]+)/([^/]+)/? $1.php?carname=$3&carnumb=$2 [L]