Я пытаюсь сделать перезаписи за последние два дня.
Теперь моя главная проблема
4. Запустите всю страницу в корне (/)
У меня есть следующие файлы:
news.php search.php store.php allstores.php
Клиент запрашивает следующее:
Type 1: http://www.example.com/news Type 2: http://www.example.com/search?q=term Type 3: http://www.example.com/allstores/H Type 4: http://www.example.com/myname
Я хочу обрабатывать эти запросы клиентов следующим образом:
Type 1: http://www.example.com/news ---rewrite to (add extension)-->news.php Type 2: http://www.example.com/search?q=term ---->No change, Let it same Type 3: http://www.example.com/allstores/H --rewrite to --->http://www.example.com/allstores.php?ln=H Type 4: http://www.example.com/myname ---rewrite to------> http://www.example.com/store?st=myname
Я пробовал следующие перезаписи:
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^example\.com$ [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] RewriteRule ^(.*) store.php?st=$1 [L] RewriteRule ^allstores/(.*)$ allstores.php?ln=$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.+)$ /$1.php [L] ErrorDocument 404 /404.php
Любая помощь очень заметна, спасибо
Можешь попробовать:
Options +FollowSymLinks -MultiViews RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^example\.com$ [NC] RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ## If the request is for a valid directory RewriteCond %{REQUEST_FILENAME} -d [OR] ## If the request is for a valid file RewriteCond %{REQUEST_FILENAME} -f [OR] ## If the request is for a valid link RewriteCond %{REQUEST_FILENAME} -l ## don't do anything RewriteRule ^ - [L] RewriteRule ^allstores/([^/]+)/?$ /allstores.php?ln=$1 [L,QSA,NC] # To internally forward /foo to /foo.php RewriteCond %{DOCUMENT_ROOT}/$1.php -f RewriteRule ^(.+?)/?$ /$1.php [L] RewriteCond %{QUERY_STRING} !^q=.+ [NC] RewriteRule ^([^/]+)/?$ /store.php?st=$1 [L,QSA]