2016-07-19 4 views
0

Я честно так потерялся, как заставить это работать.Настройка файла .htaccess Apache

Я искал дни и везде, кажется, говорит что-то другое, и теперь у меня есть файлы с добавленными строками, которые я даже не могу вспомнить.

Все, что я хочу, чтобы удалить расширение .php из URL .. Вот это ..

Я знаю, что нужно .htaccess файл, но я не знаю, что именно писать. Это то, что я до сих пор:

# 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> 

Я попытался изменить файл/и т.д./apche2/сайты с поддержкой/000 по умолчанию, но это, кажется, не существует. Там в файл 000-default.conf вместо хотя, и это сейчас читает:

<VirtualHost *:80> 
# The ServerName directive sets the request scheme, hostname and port that 
# the server uses to identify itself. This is used when creating 
# redirection URLs. In the context of virtual hosts, the ServerName 
# specifies what hostname must appear in the request's Host: header to 
# match this virtual host. For the default virtual host (this file) this 
# value is not decisive as it is used as a last resort host regardless. 
# However, you must set it for any further virtual host explicitly. 
#ServerName www.example.com 

ServerAdmin [email protected] 
DocumentRoot /var/www/html 

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn, 
# error, crit, alert, emerg. 
# It is also possible to configure the loglevel for particular 
# modules, e.g. 
#LogLevel info ssl:warn 

ErrorLog ${APACHE_LOG_DIR}/error.log 
CustomLog ${APACHE_LOG_DIR}/access.log combined 

# For most configuration files from conf-available/, which are 
# enabled or disabled at a global level, it is possible to 
# include a line for only one particular virtual host. For example the 
# following line enables the CGI configuration for this host only 
# after it has been globally disabled with "a2disconf". 
#Include conf-available/serve-cgi-bin.conf 

<Directory /var/www/html> 
      Options -MultiViews +FollowSymLinks 
      AllowOverride All 
      Order allow,deny 
      allow from all 
</Directory> 

</VirtualHost> 

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet 

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

ответ

1

Чтобы удалить .php из вашего URL все, что вам нужно нужно использовать это:

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

Перед тем, как проверить это, убедитесь, что вы очистили кэш.

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