2016-09-26 3 views
0

Я новичок здесь!.htaccess. 404 RewriteRule с тем же именем файла

Прежде всего, извините, если мой английский плохой!

Я делаю простой RewriteRule, и это дает мне 404. я должен сказать, что она работает в коммерческих хостингах (например, 1and1), но не в моем Apache (Ubuntu Server)

Если RewriteRule имеет то же имя файла php, который он возвращает 404.

  • RewriteRule # 1 работает.
  • RewriteRule # 2 НЕ работает (404)
  • RewriteRule # 3 работы
  • RewriteRule # 4 работы

     Options +FollowSymlinks 
         RewriteEngine On 
    
         RewriteBase/
         RedirectMatch ^/es/$ /es/home 
         RewriteBase /es/ 
    
         #1 
         RewriteRule ^home$ index.php [L,NC] 
         #2 
         RewriteRule ^login$ login.php [L,NC] 
         #3 
         RewriteRule ^anyName$ login.php [L,NC] 
         #4 
         RewriteRule ^singup$ register.php [L,NC] 
    
+0

вы имеете в виду, что не работает ключевое слово login, пока оно работает для любого имени на той же странице login.php. –

+0

Да, если имя совпадает с именем файла php, оно возвращает 404. –

ответ

1

У меня нет папки с таким же именем, но это решается добавлением

Options -MultiViews 
1

попробовать это так,

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^login$ login.php [L] 

или попробуйте это правило, если вы удаляете .php

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^([\w-]+)$ $1.php [NC,L] 

выше удалит .php из всех файлов, имеющих расширение .php

+0

Это хорошая идея. Я думал, что это должно сработать, но это не так! –

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