2015-06-08 3 views
0

New .htaccess файл (по-прежнему не работает, он посылает меня localhost/xamppПочему я не могу перенаправить index.php в домен?

RewriteEngine on 
RewriteBase /sample/ 

# set root to index.php 
DirectoryIndex index.php 

# prevent directory listing 
Options -Indexes 

# remove index.php 
RewriteCond %{THE_REQUEST} /index\.php [NC] 
RewriteRule ^(.*)index.php$ $1 [R=301,L,NC] 

# removing extensions 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^([^.]+)/?$ $1.php [L] 

Старый файл .htaccess ниже:

RewriteEngine on 

# set root to index.php 
DirectoryIndex index.php 

# prevent directory listing 
Options -Indexes 

# removing extensions 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

# remove index.php 
Options +FollowSymLinks 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 
RewriteRule ^index\.php$ http://localhost/sample/ [R=301,L] 

Домен http://localhost/sample/ Я пытался много вещей, которые Google дал мне. но ни один из них не работает. Каждый раз, когда я иду в localhost/sample/index.php не перенаправлять localhost/sample/. Я также использовал Redirect 301 /index.php /.

Я попытался

RewriteCond %{THE_REQUEST} ^.*/index\.php 
RewriteRule ^(.*)index.php$ /$1 [R=301,L] 

Но он отправляет меня в http://localhost/xampp/splash.php.

Я все еще новичок в .htaccess, поэтому я действительно не знаю, что я делаю неправильно. Я пробовал ответы, которые были заданы на вопросы, на которых OP сказал, что ответ сработал.

+0

Я предполагаю, что у вас есть другие правила, перенаправляет из '/' 'к Http: // Localhost/XAMPP/splash.php' – Quentin

+0

Правило перед правилом перенаправления совпадает с чем угодно и является '[L]', поэтому никакое другое правило после него не будет проверено. – deceze

+1

Добавить 'RewriteBase /' также –

ответ

0

Вы можете использовать:

# set root to index.php 
DirectoryIndex index.php 
# prevent directory listing 
Options -Indexes 
RewriteEngine on 
RewriteBase /sample/ 

# remove index.php 
RewriteCond %{THE_REQUEST} /index\.php [NC] 
RewriteRule ^(.*)index.php$ $1 [R=301,L,NC] 

# removing extensions 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^([^.]+)/?$ $1.php [L] 

RewriteBase /sample/ необходимо, чтобы убедиться, что редирект происходит от raltive пути текущего каталога.

+0

'RewriteEngine на RewriteBase/образец/ # комплект корень index.php DirectoryIndex index.php # предотвращения списка каталогов опции -Indexes # удалить index.php RewriteCond% {THE_REQUEST}/индекс \ .php [NC] RewriteRule^(. *) index.php $ $ 1 [R = 301, L, NC] # удаления расширений RewriteCond% {REQUEST_FILENAME}! -f RewriteCond% {REQUEST_FILENAME} .php -f RewriteRule^([^.] +) /? $ $ 1.php [L] ' S завершает меня до 'localhost/xampp' – iamdevlinph

+0

Вы проверили после очистки кеша браузера? Что такое 'devsite' и что такое' sample'? 'RewriteBase' должен быть установлен в относительный путь от корня сайта. – anubhava

+0

Извините. devsite - образец. – iamdevlinph

0

Используйте это:

RewriteEngine On 

# prevent directory listing 
Options -Indexes 

# allows leaving off the extension (.php) in urls 
Options +MultiViews 

# removing extensions 
RewriteCond %{REQUEST_FILENAME} !-f [NC] 
RewriteCond %{REQUEST_URI} !-d 
RewriteRule ^index(\.php)?$ http://localhost/sample [R=301,L] 
Смежные вопросы