mod_rewrite - отправляет все, что не существует, в index.php - PullRequest
0 голосов
/ 10 октября 2011

Я бы хотел, чтобы мой файл .htaccess переписывал все, что не существует, в файл index.php. Так, например: www.example.com/category/subcategory/product1/ будет переписано в index.php?request=category/subcategory/product1

Я хочу выполнить проверку, чтобы узнать, существует ли каталог первым, и если он существует, не переписывать. У меня сейчас что-то вроде этого, но мне просто нужно знать, как я могу получить запрошенный URL в переменную PHP $_GET:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /index.php [L]

Большое спасибо за любую помощь!

1 Ответ

3 голосов
/ 10 октября 2011

Вы почти там:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?request=$1 [L,QSA]

TBH, нет реальной необходимости помещать запрошенный URL в переменную $_GET - вы ВСЕГДА можете получить доступ к оригинальному (запрошенному) URL через $_SERVER['REQUEST_URI'] -единственное отличие состоит в том, что REQUEST_URI всегда начинается с косой черты (например, /category/subcategory/product1).

...