HTACCESS не работает, если существует файл с таким же именем - PullRequest
0 голосов
/ 03 июля 2018

У меня есть небольшая проблема, которую легко решить, но я точно не знаю как. У меня следующая структура папок:

  • основной сайт - контент для сайта - больше контента --- подпапка называется cms --- index.php --- content.php (и, конечно, больше)

Файл index.php выглядит следующим образом:

if(isset($_GET['page'])){
    require_once($_GET['page'].'.php');
}

Мой HTACCESS для подпапки:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^([\w-]+)/?$ index.php?page=$1 [QSA,L]

Я пытался отобразить мою переменную $ _GET ['page'] в index.php, и всякий раз, когда я вводил что-то вроде этого: www.domain.com/cms/r, это дает мне $_GET['page'] = r, что нормально. Однако, если переменная $ _GET существует в виде файла, я получаю ошибку 404: www.domain.com/cms/content, которая должна просто отобразить мой файл content.php.

Что именно я делаю не так? Всю помощь оценили:)

EDIT:

кажется, я могу заставить работать $_GET, но он игнорирует, если существует файл с именем $_GET. www.domain.com/fluidify/content не будет работать, поскольку в папке находится файл с именем content.php, однако www.domain.com/fluidify/testget выдает met testget в качестве вывода.

1 Ответ

0 голосов
/ 03 июля 2018

Если вы хотите иметь оптимизированные для SEO URL-адреса, вам следует использовать что-то вроде этого - это перенаправит все в ваш скрипт маршрутизации независимо от того, соответствует ли URL существующему файлу или нет.

RewriteEngine On

RewriteRule ^(.*)$ index.php?page=$1 [QSA,L]
...