htaccess - перенаправить все в index.php, кроме папки и определенных файлов - PullRequest
0 голосов
/ 11 февраля 2019

Я слишком долго боролся с этим.У меня есть мой сайт PHP с файлом .htaccess для переписывания и перенаправления.До сих пор он работал отлично.Теперь я просто хочу добавить подпапку /pp, чтобы все внутри нее не перенаправлялось и не переписывалось, в основном это не должно касаться моих вещей .htaccess.

Теперь, когда я захожу на mysite.com/pp / test.php (этот файл существует), он перенаправляет на mysite.com/index

Вот что у меня сейчас есть:

RewriteEngine On

#remove www for all traffic
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

#prevent redirect of submit
RewriteRule ^/?submit$ submit.php [L]

#prevent redirect of paypal
RewriteRule ^/?admin$ admin.php [L]
RewriteRule ^/?testPPButton$ testPPButton.php [L]

# browser requests PHP
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301]

# check to see if the request is for a PHP file:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/pp/.* [NC]  // this line is not working for some reason
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Options -Indexes

Обновлено .htaccess:

    RewriteEngine On

# skip /pp/* from all rules below
RewriteRule ^pp(/.*)?$ - [L,NC]

#remove www for all traffic
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

#prevent redirect of submit
RewriteRule ^/?submit$ submit.php [L]

#prevent redirect of paypal
RewriteRule ^/?admin$ admin.php [L]
RewriteRule ^/?testPPButton$ testPPButton.php [L]

# browser requests PHP
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301]

# check to see if the request is for a PHP file:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Options -Indexes

1 Ответ

0 голосов
/ 11 февраля 2019

Чуть ниже строки RewriteEngine On добавьте это, чтобы пропустить pp/ и все, что в этой папке:

RewriteEngine On

# skip /pp/* from all rules below
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\s/+pp[/?\s] [NC]
RewriteRule ^ - [L,NC]

# rest of your rules go below this
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...