2013-12-12 2 views
0

Я пытаюсь удалить .php из моего URL, ниже мое содержание .htaccessPhp апач мод переписывают удалить .php не работает

<IfModule mod_rewrite.c> 
Options -MultiViews 
RewriteEngine On 
RewriteBase /folder/ 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/?$ path.php?username=$1 [L,QSA] 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ $1.php [L] 
</IfModule> 

Я не имею ни малейшего представления, что происходит не так.

+0

RewriteCond% {REQUEST_FILENAME} -f проверяет наличие файла. Если у вас есть home.php в пути, это правило НЕ будет совпадать и, таким образом, загрузит файл напрямую – Stewie

+0

@ stewe, я новичок в модном переписывании, в основном у меня есть два условия в моих правилах, сначала для очистки URL-адреса from ** localhost/folder/profile? name = test ** to ** localhost/folder/test **, а второй - удалить расширение .php из url. Я думал, что это противоречит друг другу –

+0

Какой URL-адрес не работает для вас? – anubhava

ответ

0

Попробуйте это:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 
0

Вам необходимо дополнительное правило для перенаправления .php URL не-PHP один. Попробуйте этот код:

Options -MultiViews 
RewriteEngine On 
RewriteBase /folder/ 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/?$ path.php?username=$1 [L,QSA] 

RewriteCond %{THE_REQUEST} \s/+folder/(.+?)\.php[\s?] [NC] 
RewriteRule^%1? [R,L,NC] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+?)/?$ $1.php [L] 
Смежные вопросы