RewriteEngine on
RewriteCond %{REQUEST_URI} !(.|/$)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ api.php?url=$1 [L]
Нагорі відображається моя поточна конфігурація.
Проблема з цим полягає в тому, що вона, схоже, перенаправляється, якщо каталог або файл існує після папки у файлі htaccess.
Як я можу переписати це, так це буквально просто переспрямовує кожний окремий запит api.php
з повним запитом шляху? Я не бачу, чи існують каталоги чи файли в файлі htaccess, я можу зробити це в api.php
, Я просто хочу натиснути всі запити через цей файл.
Відповіді:
1 для відповіді № 1Ви можете використовувати:
RewriteEngine on
RewriteCond %{REQUEST_URI} !(.|/$)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
RewriteRule ^((?!api.php$).*)$ api.php?url=$1 [L,QSA,NC]
Дивитися вперед (?!api.php$)
означає переписати все, крім /api.php
до /api.php
з параметром запиту url
.
0 для відповіді № 2
подобається це:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*)$ /api.php?path=$1 [NC,L,QSA]
переконайтеся, що у вас є це до маршруту
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d