LINUX.ORG.RU

Убрать слэш в адресной строке после имени домена.

 , ,


0

2

Может быть глупый вопрос, но вот ума не приложу как это сделать. Убрать так называемый trailing slash получается, с этим проблем нет, ссылки выглядят как example.org/foo/bar вместо example.org/foo/bar/ . Теперь к сути проблемы, есть Apache 2.4.3 сервер на локалке, на нем виртуал хосты, которые резолвятся по имени и лежат в /var/www/vhosts. Вот конфиг хоста:

<VirtualHost *:80>

    DocumentRoot "/var/www/vhosts/site.local/site/public"

    ServerName site.local
    ServerAlias www.site.local

    ErrorLog /var/log/site_local_apache_error.log
    CustomLog /var/log/site_local_apache_access.log common

    <Directory "/var/www/vhosts/site.local/site/public">
            Options +FollowSymLinks
            Options -Indexes
            AllowOverride All
            DirectoryIndex index.php
            Order allow,deny
            Allow from all
            # New directive needed in Apache 2.4.3:
            Require all granted
    </Directory>

</VirtualHost>

И htaccess в public:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+?)/+$
    RewriteRule ^ %1 [L,R]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

</IfModule>

При доступе к сайту, появляется слэш, так как public это папка. Вот собственно и глупый вопрос, как превратить site.local/ в site.local