2016-03-30 6 views
0

Я familier с mod_rewrite, который я использую с apache для перезаписи URL с моим веб-сайтом php. Но мой php работает на cgi. Как я могу использовать URL Rewrite в .htaccess с PHP на CGIКак использовать Url Rewrite с PHP на CGI

Я использую Linux VPS от 1and1 с PHP на CGI Я использую следующий код для удаления .php из URL,

RewriteEngine On 

# 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}\.php -f 
RewriteRule ^/?(.*)$ /$1.php [L] 

Но это говорит следующее не найдена ошибка сейчас

Его для about.php

The document name you requested (/About) could not be found on this server. 
+0

Какой сервер веб вы используете? Nginx? В зависимости от веб-сервера вам, вероятно, потребуется посмотреть, как вы создаете перезаписи для этого конкретного сервера. Большинство из них не могут читать файлы htaccess. (насколько я знаю, это только Apache). –

+0

Я использую Linux VPS от 1and1 –

+0

Это мне не помогает. Не знаю, что используют эти VPS. –

ответ

0

к сожалению ошибку я забыл упомянуть

<IfModule mod_rewrite.c> 
</IfModule> 

правильный код ниже

<IfModule mod_rewrite.c> 
RewriteEngine On 

# 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}\.php -f 
RewriteRule ^/?(.*)$ /$1.php [L] 
</IfModule>