Как написать URL переписать с оператором ИЛИ?

1

Это файловая структура сайта:

site_one_folder
index.php

В файле site_one_folder есть файл:

controller.php

Я хочу написать правило перезаписи для

  1. Если люди ищут www.mysiteurl/index.php или www.mysiteurl или www.mysiteurl/, он будет запускать index.php
  2. Если люди ищут вместо index.php: example: я буду искать

www.mysiteurl/something.php

Затем браузер отобразит указанный выше URL-адрес, но контент должен быть

'www.mysiteurl/site_one_folder/controller.php?para=something'

NB: para = поиск имени файла, исключая (.php)

Теги:
.htaccess

2 ответа

2
Лучший ответ

Попробуйте добавить это в файл htaccess в нашей корневой папке (где index.php):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)\.php$ /site_one_folder/controller.php?para=$1 [L,QSA]

Убедитесь, что mod_rewrite включен.

  • 0
    Я попробовал это. Но это не работает для index.php. Для index.php он показывает /site_one_folder/controller.php?para=index
  • 0
    @ user1712287 существует ли файл index.php? Два условия гарантируют, что любой запрос на файл или каталог, который существует, будет исключен.
Показать ещё 2 комментария
1

Первое условие для прямого доступа к index.php. 2nd, чтобы избежать бесконечного перенаправления

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/index.php$
RewriteCond %{REQUEST_URI} !^/site_one_folder/controller.php$
RewriteRule ^(.+)\.php$ site_one_folder/controller.php?para=$1 [L]
  • 1
    Это не работает. Попытка это создает 500 Внутренняя Ошибка Сервера
  • 0
    Оставьте только эти строки в htacces и попробуйте снова. Я воспроизвожу твою структуру папок. Оно работает

Ещё вопросы

Сообщество Overcoder
Наверх
Меню