Показывать только название продукта в URL Laravel 5.5 - PullRequest
0 голосов
/ 26 июня 2018

У меня есть такой URL https://rockmobile.pk/detail/oneplus6 и хотите удалить слово «деталь» и показывать только название продукта https://rockmobile.pk/oneplus6.html. Мой .htaccess файл в общей папке

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

    RewriteEngine On
    RewriteRule ^([^-]*).html$ detail/$1/  [L]

    # 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=301]

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

Правило перезаписи

RewriteRule ^([^-]*).html$ detail/$1/  [L]

обнаруживает /oneplus6.html, но URL-адрес изменен на / detail / oneplus6

(протестировано на локальном сервере Apache Wampserver)

http://localhost/projectName/public/oneplus6.html изменить на http://localhost/projectName/public/detail/oneplus6

1 Ответ

0 голосов
/ 26 июня 2018

Вам нужно использовать [P] из правила перезаписи, чтобы оно передавало запрос по запросу

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

    RewriteEngine On
    RewriteRule ^([^-]*).html$ detail/$1/ [P]

    # 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=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L] 
</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...