Jump to content
  • 0

htaccess и корень


belkir
 Share

Question

Товарищи знатоки, помогите пожалуйста!

Задача такая:

сайт может лежат в любой директории хоста

http://site.ru/

http://site.ru/some_dir1/

http://site.ru/some_dir2/dir/

Есть ли способ в файле .htaccess получить адрес каталога (в котором и лежит сам файл) без его явного указания.

Т.е. сейчас я имею код:


Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_URI} ^/index\.php$
RewriteRule . / [R=301,L]

ErrorDocument 403 /?error=403
ErrorDocument 404 /?error=404
ErrorDocument 500 /?error=500

Но если сайт переедет из корня в директория some_dir - код потребует явного изменения:


Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_URI} ^/some_dir/index\.php$
RewriteRule . /some_dir/ [R=301,L]

ErrorDocument 403 /some_dir/?error=403
ErrorDocument 404 /some_dir/?error=404
ErrorDocument 500 /some_dir/?error=500

Мне требуется получить некоторую переменную, чтобы htaccess сам понимал где он лежит (а лежит он в корне сайта) и уже к своему пути подставлял правила переадресации и т.п.

Заранее, огромное спасибо!

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Что-то я не вкуил там способ, так или иначе он не заработал. Ещё идеи есть?

задумка в том что CMS необязательно будет лежать в корне Хоста "/", допустим: она может находиться тут: /sub_dir/, но должна корректно обрабатывать обрезание своего корневого "index.php?params..." на "?params..."

Edited by belkir
Link to comment
Share on other sites

  • 0

зачем?

<IfModule mod_rewrite.c>
#Uncomment "RewriteBase /" when you upload this .htaccess to your web server, and comment it when on local web server
#NOTE:
RewriteBase /
#If your application is in a folder, for example "application". Then, changing the "application" folder name, will require you to reset the RewriteBase /[your app folder]
#RewriteBase /[your app folder - optional]
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
# otherwise forward it to index.php
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
</IfModule>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy