Правило перезаписи не работает в файле .htaccess, когда я получаю значение GET в URL в edit-page.php - PullRequest
0 голосов
/ 18 октября 2018

.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

Я подозреваю, что мои правила перезаписи являются причиной, но я не знаю причину.Пожалуйста, помогите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...