将网站导入 xampp:htaccess 更改

Posted

技术标签:

【中文标题】将网站导入 xampp:htaccess 更改【英文标题】:Import website to xampp: htaccess changes 【发布时间】:2013-01-09 09:26:39 【问题描述】:

我有一个正在运行的 Joomla 网站,它也使用 .htaccess 来生成对 SEO 友好的 URL。由于升级,我想在第一步将网站导入 xampp。这适用于欢迎页面。但是,如果我从菜单中选择一个链接,我总是会收到“找不到对象”错误。这是由于 .htaccess 文件。我必须以某种方式将其从 www.mypage.com 调整为 localhost/mypage。

这是常规网站的.htaccess 的样子:

RewriteEngine on

RewriteCond %HTTP_HOST !^www\.mypage\.de$
RewriteRule ^(.*)$ http://www.mypage.de/$1 [L,R=301]

########## Begin - Rewrite rules to block out some common exploits
RewriteCond %QUERY_STRING mosConfig_[a-zA-Z_]1,21(=|\%3D) [OR]
RewriteCond %QUERY_STRING base64_encode.*\(.*\) [OR]
RewriteCond %QUERY_STRING (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %QUERY_STRING GLOBALS(=|\[|\%[0-9A-Z]0,2) [OR]
RewriteCond %QUERY_STRING _REQUEST(=|\[|\%[0-9A-Z]0,2)
RewriteRule ^(.*)$ index.php [F,L]

#  Uncomment following line if your webserver's URL
#  is not directly related to physical file paths.
#  Update Your Joomla! Directory (just / for root)

RewriteBase /

########## Begin - Joomla! core SEF Section
#
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_URI !^/index.php
RewriteCond %REQUEST_URI (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%HTTP:Authorization,L]
#
########## End - Joomla! core SEF Section

现在我必须更改它,以便它适用于 localhost/mypage 而不是 www.mypage.de。我对 .htaccess 不熟悉,所以如果有人能说出错误来自哪里以及必须在此处进行哪些更改,那就太好了。

谢谢:)

【问题讨论】:

【参考方案1】:

我发现了它是如何工作的:

RewriteEngine on

########## Begin - Rewrite rules to block out some common exploits
RewriteCond %QUERY_STRING mosConfig_[a-zA-Z_]1,21(=|\%3D) [OR]
RewriteCond %QUERY_STRING base64_encode.*\(.*\) [OR]
RewriteCond %QUERY_STRING (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %QUERY_STRING GLOBALS(=|\[|\%[0-9A-Z]0,2) [OR]
RewriteCond %QUERY_STRING _REQUEST(=|\[|\%[0-9A-Z]0,2)
RewriteRule ^(.*)$ index.php [F,L]

#  Uncomment following line if your webserver's URL
#  is not directly related to physical file paths.
#  Update Your Joomla! Directory (just / for root)

RewriteBase /mypage

########## Begin - Joomla! core SEF Section
#
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_URI !^/index.php
RewriteCond %REQUEST_URI (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%HTTP:Authorization,L]
#
########## End - Joomla! core SEF Section

关键是将 RewriteBase 更改为 /mypage。

除此之外,我删除了这部分:

RewriteCond %HTTP_HOST !^www\.mypage\.de$
RewriteRule ^(.*)$ http://www.mypage.de/$1 [L,R=301]

因为它只适用于网络上的生产性网站。

【讨论】:

以上是关于将网站导入 xampp:htaccess 更改的主要内容,如果未能解决你的问题,请参考以下文章

xampp 上 .htaccess 文件的奇怪行为

.htaccess mod rewrite 适用于 WAMPP 但不适用于 XAMPP

Codeigniter - XAMP - htaccess 问题

在 xampp 的 phpmyadmin 中添加 htaccess 文件

XAMPP/Apache 文件夹中的 .htaccess 未找到错误 404

.htaccess 文件不适用于我的项目