.htaccess код мод-переписать код очистки - PullRequest
0 голосов
/ 22 октября 2011

Я новый в этом моде переписать вещь.

Я пытаюсь сделать некоторые основные перенаправления.

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]

это мой .htaccess, но он в очень плохом состоянии!

я пытаюсь это сделать.

1) Попытка сообщить Google, что pickndrive.info и www.pickndrive.info совпадают.

2) перенаправить / новый (или использованный) / cars / (значение INT) / (строка) в X.php? Carname = (строка) & carnumb = (INT)

3) перенаправление / cars / (STRING) на страницу поиска search.php? Query = $ 1

4) перенаправление / cars на browse.php? # Tabs-all

5) перенаправление сравнения / * / (любое количество до 3 раз) для сравнения. Php? Car [] = X1 & car [] = X2 & car = X3

хорошо, насколько это работает. но я не могу заставить цель номер 3/4 работать, потому что, если я делаю, они просто привинчивают остальное: (.

Может кто-нибудь указать мне, как написать хороший чистый .htaccess мод переписать, пожалуйста:)

1 Ответ

2 голосов
/ 22 октября 2011

Что-то вроде этого для # 3/4?

RewriteRule ^cars/([^/]+)/? search.php?query=$1 [L]
RewriteRule ^cars/? browse.php [L]

Вы должны быть в состоянии добавить это в конце. Обратите внимание, что #tabs-all не будет переводиться как перезапись, так как это то, что браузер обрабатывает на стороне клиента, и сервер ничего не может сделать. Вы могли бы, возможно, добавить немного JavaScript, чтобы браузер автоматически переходил на # tabs-all с некоторым количеством JavaScript в browse.php.

Я не знаю, есть ли более чистый способ сделать № 5, кроме 3-х правил «сравнения», и № 1 и № 2 в порядке. Если вы переименуете (или символическую ссылку) «search.php» в «new.php», вы можете объединить эти 2 правила в:

RewriteRule ^([^/]+)/cars/([^/]+)/([^/]+)/? $1.php?carname=$3&carnumb=$2 [L]

но я думаю, что лучше явно исключить / new / cars / и / used / cars /, так как это правило также переписывает "/ qwerty / cars /" в "qwerty.php? ..."

...