2013-08-25 3 views
1

Я создал фреймворк PHP, который имеет встроенную систему TPL. Он извлекает окончание URL-адреса и находит файл с этой строкой. Поэтому, если url равен http://website.com/tagHere, система Tpl будет искать файл с именем tagHere.php. Все работает отлично, но теперь я пытаюсь расширить структуру, чтобы иметь встроенную панель. Я пробовал несколько способов, но он просто отказывается работать.Проблема с htaccess

Я решил взглянуть на Wordpress 'htaccess, так как они делают именно то, что я пытаюсь выполнить. Вот как их htaccess работает.

Они проверяют, является ли требуемое имя файла файлом. Если это не файл, они проверяют, является ли это папкой. Если это не папка, они перенаправляются на index.php. Я хочу, чтобы он проверял, является ли это файлом/папкой, и если он не удаляет тэг .php из URL-адреса, система TPL может получить указанный файл и вернуть его.

Это был мой оригинальный файл .htaccess.

RewriteRule ^(|/)$ index.php?url=$1 
RewriteRule ^([a-zA-Z0-9_-]+)(|/)$ index.php?url=$1` 

Это оригинальный .htaccess файл Wordpress.

<ifmodule mod_rewrite.c=""> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</ifmodule> 

Вот моя попытка:

<ifmodule mod_rewrite.c=""> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule . /index.php [L] 
RewriteRule ^(|/)$ index.php?url=$1 
RewriteRule ^([a-zA-Z0-9_-]+)(|/)$ index.php?url=$1 
</ifmodule> 

Когда я пытаюсь выше HTAccess, он возвращает ошибку 404.

ответ

1

Правило

RewriteRule . /index.php [L] 

будет всегда соответствовать всем URL, потому что он говорит что-то вроде «если есть символ в URL, а затем перенаправить».

Что вы ищете что-то вроде этого:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^admin/(.*?)$ admin.php?location=$1 [L] 
RewriteRule ^(|/)$ index.php?url=$1 
RewriteRule ^([a-zA-Z0-9_-]+)(|/)$ index.php?url=$1 
+0

все еще возвращает 404 ошибку. Не знаю, почему ... Но я уверен, что это htaccess, а не PHP. – Criesval

+0

Трудно помочь вам без вашего кода. Какой URL-адрес вы пытаетесь и каким должен быть результат? – Dragony

+0

Я пытаюсь получить доступ к этому ----> http://intactdev.nu/templating-tags Он должен вернуть HTML-страницу. – Criesval

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