2015-06-26 3 views
2

У меня есть эта Рабочая HTAccessКак загрузить файл PHP без расширения PHP

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^test/([0-9]+)/?$ test.php?id=$1 [L] 

моего вопроса для этого, если у меня есть это правило на моем HTAccess, как я могу загрузить файл PHP, который не имеет расширения .php.

добавить это к моему htacess

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

Он отлично работает http://localhost/myprojectfolder/account , но это не будет работать больше http://localhost/myprojectfolder/1 , как я могу сделать их как работать?

Заранее спасибо.

+0

black milk? попытаться понять, что вы изменить и что это означает – donald123

ответ

2

Если вы используете этот URL-адрес http://localhost/myprojectfolder/1, как в своем другом вопросе. Тогда test не должно быть даже в первом правиле. Тогда вы можете просто убедиться, что файл существует.

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([0-9]+)/?$ test.php?id=$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 
3

Попробуйте добавить еще одно условие для вашего правила расширения PHP:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

, что гарантирует, что при добавлении расширения .php, он на самом деле указывает на файл, который существует.

+0

Или намного лучше, просто сказать:! RewriteCond% {REQUEST_FILENAME} -f RewriteCond% {REQUEST_FILENAME} -d RewriteCond% {DOCUMENT_ROOT}/$ 1.php -f RewriteRule^([^ \.] +) $ $ 1.php [NC, L] – tormuto

Смежные вопросы