htaccess: несколько вложенных папок и доступ к веб-сайту



Я застрял, правильно настраивая свой htaccess. В настоящее время у меня есть следующая ситуация и структура файла в моей папке htdocs:




  • .htaccess

  • / веб-сайт

  • / клиенты / blabla

  • / somefolder


Как вы можете догадаться, папка "website" содержит все файлы, которые должны быть доступны при переходе к http://mydomain.com - это прекрасно работает с текущим htaccess:



RewriteEngine on 

# remove www
RewriteCond %{HTTP_HOST} ^www.mydomain.com$ [NC]
RewriteRule ^(.*)$ http://mydomain.com/$1 [R=301,L]

# subfolder
RewriteCond %{HTTP_HOST} ^mydomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mydomain.com$
RewriteCond %{REQUEST_URI} !^/website/
RewriteRule (.*) /website/$1

# clean urls
RewriteRule ^website/([a-z0-9-]+)$ website/$1.php


Моя проблема: пока я хочу, чтобы мой сайт был доступный так, как это сейчас, я также хочу иметь возможность доступа http://mydomain.com/clients/blala и http://mydomain.com/somefolder и т. д... С моим текущим htaccess это приводит к ошибке 404 говоря " запрошенный URL / website / clients / blabla не был найден на этом сервере."



Что мне нужно добавить / изменить в мой htaccess, чтобы это сработало?



Заранее спасибо

585   2  

2 ответов:

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

RewriteCond %{REQUEST_URI} !^/clients/
RewriteCond %{REQUEST_URI} !^/somefolder/

И поместите их перед вашим правилом перезаписи в разделе вложенных папок. Это остановит его встраивание /website/ в URI, если он уже содержит /clients/ или /somefolder/

Это должно сработать.

RewriteEngine on 

# remove www
RewriteCond %{HTTP_HOST} ^www.mydomain.com$ [NC]
RewriteRule ^(.*)$ http://mydomain.com/$1 [R=301,L]

# subfolder
RewriteCond %{HTTP_HOST} ^mydomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$
RewriteCond %{REQUEST_URI} !^/website/
RewriteCond %{REQUEST_URI} !^/somefolder/
RewriteCond %{REQUEST_URI} !^/client/blabla/
RewriteRule (.*) /website/$1

# clean urls
RewriteRule ^website/([a-z0-9\-]+)$ website/$1.php

Comments

    Ничего не найдено.