.htaccess 仅适用于特定文件夹脚本

标签 .htaccess mod-rewrite

好的, 我对 .htaccess RewriteRule 有一个小问题。

我在本地制作了一个简单的网站,使用 RewriteRule 来处理如下网址:

http://localhost/ <- main page
http://localhost/log/ <- log page
etc.

我的 .htaccess 文件中有这个:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /script
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

AuthUserFile c:\data\mysite\.htpasswd
AuthType Basic
AuthName "Secret place"
require valid-user

由于该网站已准备就绪并且它基本上只是一个有用的脚本,因此我将内容移至 http://mysite/script/

当我打开http://mysite/script/时一切正常,但是当我点击一个网址时,它会打开http://mysite/script/log/ code> 在浏览器栏中,但加载 http://mysite/ 首页内容。

意思是,重定向不允许我读取必要的 log 内容,但认为这是对首页的重写(因为主站点没有值 script/log/.

现在,我如何设置它来加载真实 mysite/script/log 内容?

提前致谢。

编辑:

这是主站点根目录上的.htaccess 文件:

RewriteEngine On

RewriteCond %{HTTP:range} !(^bytes=[^,]+(,[^,]+){0,4}$|^$)
RewriteRule .* - [F]

RewriteCond %{HTTP_HOST} ^mysite\.com
RewriteRule (.*) https://www.mysite.com/$1 [R=301,QSA,L]

RewriteCond  %{QUERY_STRING} (\&ch_lang\=[]{2}|)
RewriteRule  ^one-of-links$ ?main_page_extend=4011%1 [L]

php_value memory_limit 512M

最佳答案

您需要将RewriteBase更改为/script。否则,当重写/index.php时,它会转到文档根目录的index.php(您的首页),而不是脚本中的index.php。

关于.htaccess 仅适用于特定文件夹脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12006500/

相关文章:

javascript - 如何修复 Firefox 中的跨域请求失败

.htaccess - 将目录重定向到子域

.htaccess - 单个 URL 和所有其他 URL 的 301 重定向到主页

wordpress - 子文件夹 WordPress 的 htaccess 冲突

php - 地址栏不变 - PHP

php - Apache mod_rewrite : get rewritten directories as array and maintain the query string

ruby-on-rails - Rails - .htaccess 不强制用户使用 https

Apache重写规则: How to check for host name in cookies?

.htaccess - 替换 htaccess 中的主机

php - 简单的 .htaccess 重写不适用于 GoDaddy