Перепишите URL с помощью .htaccess, но игнорируйте определенные каталоги - PullRequest
1 голос
/ 10 февраля 2012

У меня есть каталог на сайте:

В нем у меня есть файл. htaccess.

Я хочу, чтобы он брал любой URL, подобный этому:

И переписать это на:

За исключением любых URL, которые ссылаются на эти каталоги:

Первая часть работает, но я не могу сказать, чтобы исключить файлы в определенных каталогах:

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^([^/]+)/([^/]+) index.php?arg1=$1&arg2=$2 [NC]

Обновление:

Это работает в очень простом и простом смысле:

RewriteRule ^css - [L,NC]
RewriteRule ^javascript - [L,NC]
RewriteRule ^images - [L,NC]
RewriteRule ^([^/]+)/([^/]+) index.php?arg1=$1&arg2=$2 [NC]

но я уверен, что есть более элегантное решение?

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

Я думаю, что ключевое слово, которое вы ищете, это RewriteCond.Это очень похоже на то, что вы получили в итоге.

RewriteCond %{REQUEST_URI} !^(css|javascript|images)
RewriteRule ^([^/]+)/([^/]+) index.php?arg1=$1&arg2=$2 [NC]
1 голос
/ 10 февраля 2012

Вы можете использовать RewriteCond, чтобы проверить, существует ли фактический файл ... по крайней мере, я использую это для веб-сайтов, когда я хочу, чтобы такие вещи, как CSS, Javascripts и изображения были доступны (без перенаправления запроса). .)

Вот строка, которую я использую:

# only rewrite if the requested file doesn't exist
RewriteCond %{REQUEST_FILENAME} !-s

Дайте мне знать, если это работает для вас!

...