У меня проблема с использованием.htaccess, чтобы переписать некоторый дружественный URL.
Корневой URL-адрес: http://www.example.com/my/
Рабочий URL-адрес: http://www.example.com/my/Post.php?id=2
Оба файла.htaccess и Post.php находятся в подкаталоге http://www.example.com/my/
Но я хотел, чтобы это было следующим: http://www.example.com/my/job/kuantan/?id=2
Конфигурация.htaccess, как показано ниже:
DirectoryIndex index.php
Options All -Indexes
#ErrorDocument 404 /404.php
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^job/kuantan/([0-9]+) /Post.php?id=$1 [L,QSA, NC]
НО, как только я развернул вышеуказанный файл конфигурации.htaccess, он также запросил 500 внутренних сообщений об ошибках.
Что-то не хватает или неправильно в конфигурации.htaccess? Пожалуйста, посоветуйте и по достоинству оцените, если кто-то может дать руку. Благодарю.
Предполагая, что.htaccess и Post.php находятся в подкаталоге /my/
:
DirectoryIndex index.php
Options All -Indexes
#ErrorDocument 404 /404.php
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^job/kuantan/([0-9]+)$ Post.php?id=$1 [L,QSA,NC]
Удалите все пробелы между []
. Измените /Post.php?id=1
на Post.php?id=$1
.
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
, также убедитесь, что mod_rewrite
действительно установлен.
Вам нужно просто одно правило:
RewriteRule ^/my/job/kuantan/$ /my/Post.php
Строка запроса переносится по умолчанию.
Этот код можно использовать в /my/.htaccess
:
DirectoryIndex index.php
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /my/
RewriteCond %{THE_REQUEST} /Post\.php [NC]
RewriteRule ^ job/kuantan [R=302,L,NE]
RewriteRule ^job/kuantan/?$ Post.php [L,NC]
Строка запроса автоматически переносится, поэтому нет необходимости фиксировать ее в правиле.
#
из#RewriteRule ^job/kuantan/([0-9]+) /Post.php?id=$1 [L,QSA, NC]