Htaccess Hide File Extention и параметр $ _GET Keep для доступа - PullRequest
0 голосов
/ 28 мая 2019

Прежде всего, у меня есть 2 файла, это index.php и main.php, внутри обоих файлов я уже включил параметр $ _GET, чтобы к нему можно было получить доступ с помощью этого

index.php?page=login
index.php?page=register&ref=1 
main.php?page=member
main.php?page=member&edit
main.php?page=logout

с помощью.htaccess Я хочу удалить расширение .php, но хочу сохранить параметр и получить к нему доступ с новым URL-адресом

Я сделал этот код

RewriteEngine On
RewriteBase /

## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=302,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php?\?p=([^\s]+)? [NC]
RewriteRule ^ /%1? [R=302,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php?\?p=([^\s]+)&[A-Z]=([^\s]+) [NC]
RewriteRule ^ /%1?/%2? [R=302,L,NE]

# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]

RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?p=$1  [L,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/?$ main.php?p=$1  [L,QSA]

Да, я могу получить доступ к index.php с помощьютолько http://ex.com/index и main.php http://ex.com/main,, но взгляните на этот код

RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?p=$1  [L,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/?$ main.php?p=$1  [L,QSA]

Когда правило index.php находится сверху, я могу получить доступ к http://ex.com/login или http://ex.com/register (параметры в index.php), но не может получить доступ к http://ex.com/member или http://ex.com/logout (параметр в main.php)

То, что я хочу, это иметь доступ ко всем файлам с помощью параметра или нет.спасибо

1 Ответ

0 голосов
/ 28 мая 2019

вот код для использования

RewriteRule ^register/?$ index.php?p=register  [L]
RewriteRule ^login/?$ index.php?p=login  [L]
RewriteRule ^member/?$ main.php?p=member  [L]
RewriteRule ^logout/?$ main.php?p=logout  [L]

но да, параметр может быть доступен с помощью чего-либо или чего-либо. Просто хочу узнать больше.

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