.htaccess файл
RewriteEngine on
#FIRST RULE
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
#2ND RULE
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([^/]+)/?$ ?page=$1 [L]
#3RD RULE
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ ./edit-page?edit=$1
Теперь позвольте мне объяснить приведенный выше код.
ПЕРВОЕ правило перезаписи удалит все расширение .php
, поэтому, если у меня есть http://localhost:8888/index.php
, я могу получить доступоно с http://localhost:8888/index
без расширения .php
ВТОРОЕ правило перезаписи преобразует эту ссылку:
http://localhost:8888/CodeArk/?page=introduction-page
в
http://localhost:8888/CodeArk/introduction-page
Проблема в последнем правиле (3-е)RULE).
предполагается преобразовать эту ссылку:
http://localhost:8888/CodeArk/edit-page/?edit=introduction-page
в
http://localhost:8888/CodeArk/edit-page/introduction-page
Теперь это не работает, потому что, когда я пытался получить значение edit
в файле edit-page.php
edit-page.php
echo "YOUR EDIT IS: "$_GET['edit'];
вывод
YOUR EDIT IS: edit-page/introduction-page.php/introduction-page
Что случилось?вывод должен быть только этот
YOUR EDIT IS: introduction-page
Я подозреваю, что мои правила перезаписи являются причиной, но я не знаю причину.Пожалуйста, помогите