Próbowałem usunąć rozszerzenia PHP z mojej witryny. Gdy użytkownik zażąda pliku PHP, PHP zostanie usunięte, a użytkownik zostanie przekierowany, a gdy użytkownik wpisze adres URL bez PHP, zostanie dostarczony rzeczywisty plik PHP. To działało dobrze, chyba że w adresie URL znajduje się parametr GET. Moje zasady są jak poniżej:Jak używać Apache Mod_rewrite do usuwania rozszerzenia php przy zachowaniu parametrów GET?
# remove .php ONLY if requested directly
RewriteCond %{THE_REQUEST} (\.php\sHTTP/1)
RewriteRule ^(.+)\.php$ /$1 [R=301,L,QSA]
# remove trailing slash ONLY if it is not an existing folder
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# rewrite to FILENAME.php if such file does exist and is not a folder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ /$1.php [L,QSA]
myślałem, że to powinno już być w stanie usunąć nawet gdy php istnieje jakikolwiek parametr GET, ale nie udało się. Próbowałem także coś takiego:
RewriteCond %{THE_REQUEST} (\.php\sHTTP/1)
RewriteRule ^(.)\.php(.)$ $1$2 [R=301,L,QSA]
To też nie zadziałało, php nadal tam jest. Ale gdy próbuję:
RewriteRule ^(.)\.php(.)$ $1$2 [R=301,L,QSA]
czyli usunięcie RewriteCond, rozszerzenie php zostanie usunięty i parametry zostały zachowane, ale strona nie będzie służył jako przeglądarka mówi było zbyt wiele przekierowań.
Czy ktoś ma jakieś pomysły?
w RewriteRule (czy jest to tylko noob jak ja lol?):/1 $ generować niedziałający link, użyj $ 1 Przy out / – StefanoCudini