2

例如,我有一个正在运行的 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 不熟悉,所以如果有人能说出错误来自哪里以及必须在此处进行哪些更改,那就太好了。

谢谢 :)

4

1 回答 1

0

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

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]

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

于 2013-01-25T15:52:35.183 回答