Удалите ".php" из URL - ничего не работает
Ubuntu 14.04LTS 32bit
ФОНАРЬ
Я знаю, что это старый вопрос, но..
Мне нужно, чтобы удалить.php везде, где он находит его из видимого URL. Он должен работать с /showthread.php?id=XX ---> /showthread? Id = XX
Я даже не могу заставить его работать /page.php
-> /page
, Я пробовал это:
https://stackoverflow.com/questions/4026021/remove-php-extension-with-htaccess
https://stackoverflow.com/questions/1992183/how-to-hide-the-html-extension-with-apache-mod-rewrite
https://stackoverflow.com/questions/15917258/remove-php-from-urls-with-htaccess
https://stackoverflow.com/questions/13832468/how-to-stop-htaccess-loop/13832827
Это просто ничего не делает. В то время как другие .htaccess
код работает нормально..
В то время как
<?php
phpinfo();
Списки mod_rewrite в загруженных модулях
А также
<?php
if(!function_exists('apache_get_modules') ){ phpinfo(); exit; }
$res = 'Module Unavailable';
if(in_array('mod_rewrite',apache_get_modules()))
$res = 'Module Available';
?>
<html>
<head>
<body>
<p><?php echo apache_get_version(),"</p><p>mod_rewrite $res"; ?></p>
</body>
</html>
Возвращает Module Available
Перепробовал еще много вещей
# Apache Rewrite Rules
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# Add trailing slash to url
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
RewriteRule ^(.*)$ $1/ [R=301,L]
# Remove .php-extension from url
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)/$ $1.php
# End of Apache Rewrite Rules
</IfModule>
#
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]
#
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php
Даже это не имеет никакого эффекта:
RewriteRule ^page$ page.php [L]
sudo service apache2 restart
ничего не меняет.
Перезагрузка сервера ничего не меняет.
Я попытался очистить другой код внутри, не сделал никаких изменений.
Я очистил кеш браузера 100 раз
Я начинаю думать, что это просто ненавидит меня. Что может быть причиной этого??
3 ответа
Убедитесь, что ваш конкретный сайт включен, чтобы:
$sudo vi /etc/apache2/sites-available/000-default.conf
<Directory "/var/www/html">
AllowOverride All
</Directory>
$sudo service apache2 restart
Пожалуйста, используйте это как ваш.htaccess файл:
<IfModule mod_rewrite.c>
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC]
RewriteRule ^ %1 [R=301,L]
</IfModule>
Если вам нужно другое имя файла, вы можете заменить index.php на имя и расширение вашего файла.
Если в вашем каталоге все еще отображается файл index.php, включите перезапись модуля на вашем хосте.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
Проверьте это, как удалить расширение php, html из URL с помощью htaccess