【问题标题】:htaccess: migrating from server root directory to subdirectoryhtaccess:从服务器根目录迁移到子目录
【发布时间】:2014-02-10 10:38:56
【问题描述】:

到目前为止,我的应用程序在服务器的根目录中运行,因此应用程序脚本中的每个链接都是相对(即 /media/style.css)。到目前为止,可以在http://jazyky.cz 访问应用程序

现在我将我的应用移动到开发服务器的子目录 /home/david/public_html/jazyky,因此应用 URL 现在是 http://dev.company.cz/~david/jazyky,并且可以通过 http://dev.company.cz/~david/jazyky/htdocs 访问 WWW 文件夹(可从外部访问)。

在这个htdocs 目录中有一个文件夹media,所有应用程序链接都指向该文件夹。

我对 .htaccess 非常不合格,所以我向任何人寻求建议。

我应该如何调整我的 .htaccess 文件(位于 htdocs 文件夹内)以便正确映射应用程序内的所有链接?

我现在的.htaccess

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
#RewriteRule ^.*$ index.php [NC,L]

RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]

提前谢谢你!

【问题讨论】:

  • 您的 HTML 页面上是否已经有 /media/style.css 的链接,并且 media 文件夹直接位于 htdocs 下,那么链接应该可以按原样找到。
  • 感谢您的回复。例如,在我的脚本中,我有这个链接:/media/css/screen.student.css?ver=,如果我尝试通过可点击的 Firefox 链接访问它,它会尝试访问 URL:http://dev.company.cz/media/css/screen.student.css?ver=7 而不是 http://dev.company.cz/~david/jazyky/htdocs/media/css/screen.student.css?ver=7

标签: .htaccess relative-path


【解决方案1】:

在您的 .htaccess 之上尝试此规则:

RewriteCond %{THE_REQUEST} \s/+media/ [NC]
RewriteRule ^(media/.*)$ ~david/jazyky/htdocs/$1 [R=302,L,NE]

【讨论】:

  • 感谢您的建议。这条规则看起来相当先进。不幸的是,即使它应该起作用,它也不起作用。我通过创建虚拟主机解决了我的问题,所以不用担心。还是谢谢你!
猜你喜欢
  • 1970-01-01
  • 2012-01-26
  • 1970-01-01
  • 2015-09-02
  • 1970-01-01
  • 2013-10-02
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多