Удалите index.php с помощью htaccess - PullRequest
0 голосов
/ 22 мая 2018

Я хочу удалить index.php из URL, используя htaccess.Пример кода:

Options +FollowSymlinks
Options -Indexes
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

Например: если мой URL https://url.com/index.php, то как это сделать https://url.com?.

И второй вопрос, есликто-то печатает https://url.com/directory, который содержится не в индексе, а затем как перенаправить их в основной домен без index.php?

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

Когда я заменил последнюю строку на RewriteRule ^ %1 [R=301,L], то работал.

Например: https://url.com/demo или https://url.com/demo/demo1 (каталог не существует), затем он перенаправил на https://url.com без index.php.

Но когда URL-адрес равен https://url.com/index.php, он по-прежнему показывает тот же URL-адрес https://url.com/index.php.Как убрать index.php?

Ответы [ 5 ]

0 голосов
/ 22 мая 2018

Вы можете использовать эти правила в корне сайта .htaccess:

Options +FollowSymlinks -Indexes
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ %1 [L,R=301,NE]
RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteCond %{REQUEST_URI} ^(.*/)index\.php$ [NC]
RewriteRule ^ %1 [L,R=301,NE]
0 голосов
/ 22 мая 2018

if Использовать CodeIgniter

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /ProjectName/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
    </IfModule>

Иначе

    <IfModule mod_rewrite.c>
    RewriteEngine On

    # Send would-be 404 requests to Craft
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
    RewriteRule (.+) index.php?p=$1 [QSA,L]
</IfModule>

Это основное правило, позволяющее скрыть index.php из URL.Поместите это в свой корневой файл .htaccess.

mod_rewrite должен быть включен с PHP, и это будет работать для версии PHP выше 5.2.6.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

RewriteEngine On RewriteBase /

# Removes index.php from ExpressionEngine URLs
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteCond %{REQUEST_URI} !/system/.* [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

# Directs all EE web requests through the site index file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

0 голосов
/ 22 мая 2018

В корне вашего проекта, пожалуйста, создайте или поместите файл .htaccess.И добавьте следующие строки.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
0 голосов
/ 22 мая 2018
RewriteEngine on
RewriteBase /Projectname
# Hide the application and system directories by redirecting the request to index.php
RewriteRule ^(application|system|\.svn) index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
0 голосов
/ 22 мая 2018
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...