我有PHP oscommerce网站,其中我使用htaccess进行url重写来隐藏文件名,现在我面临的问题是我的本地服务器无法复制htaccess,因为它应该这样做,它在现场工作完美网站..
有人可能会说明原因是什么?
EDITED
下面是我正在使用的htaccess重写规则,为了安全起见,我已将我的原始网站名称替换为“mydomain”:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain.com [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]
#INDEX PAGE
#----------
RewriteRule http://www.mydomain.com/index\.html http://www.mydomain.com/ [R]
RewriteRule http://www.mydomain.com/index\.php http://www.mydomain.com/ [R]
RewriteRule ^index.html index.php [NC]
#STATIC PAGES
#------------
RewriteRule ^about-us.html information.php?info_id=1 [NC]
RewriteRule ^faqs.html information.php?info_id=8 [NC]
RewriteRule ^contact-us.html contact_us.php?info_id=9 [NC]
RewriteRule ^terms-and-conditions.html information.php?info_id=10 [NC]
RewriteRule ^privacy-policy.html information.php?info_id=3 [NC]
#RewriteRule ^we-design-your-banner-free.html information.php?info_id=11 [NC]
RewriteRule ^vinyl-banner-samples.html vinyl_banner_sample.php [NC]
RewriteRule ^art-specifications.html art_specification.php [NC]
RewriteRule ^sitemap.html sitemap.php [NC]
#checkout - my account pages
#---------------------------
#RewriteRule ^account.html account.php?$1 [NC]
#RewriteRule ^checkout.html checkout.php?$1 [NC]
现在问题是这样的:
我有一个类似的链接:
<a href="/about_us.html" title="About Us" class="footertext_link">About Us</a>
现在在本地机器中,当我点击此链接时,我将导航到网址
http://192.168.1.55/about_us.html
而应该导航到
http://192.168.1.55/mydomain/about_us.html
预期的网址根据其域名在实时服务器上可用,但在本地我找不到网页..
请帮忙
答案 0 :(得分:4)
您对JapanPro's answer的评论告诉我,您的网站确实位于本地服务器的子目录中,在这种情况下可能是因为它无法正常工作(基于此your other question )是因为URL结构与您的实时服务器不同(它位于根目录,但不在您的本地环境中)。
要解决此问题,您需要将Apache配置为use a name-based virtual host,然后在主机文件中添加与您选择的名称对应的条目。然后,您将使用该域名访问您的网站,并且由于URL结构将与您的实际网站保持一致,因此它应该可以正常工作。
示例:
<强> C:\ Windows \ System32下\驱动程序\等\主机强>
127.0.0.1 domain.local
<强>的httpd.conf 强>
<VirtualHost *:80>
ServerName domain.local
DocumentRoot "C:\wampdir\htdocs\mydomain"
<Directory "C:\wampdir\htdocs\mydomain">
Options Indexes FollowSymLinks Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
编辑:Here's a more in-depth description设置虚拟主机并在新主机条目中进行编辑,希望能够比我更好地解释此过程。
答案 1 :(得分:0)
您在本地xampp,wamp或其他任何地方使用的内容,您可能需要启用htaccess
我认为您正在使用xampp或建议使用它。
How to enable or use .htaccess on Apache Web Servers in Windows:
Using a text editor, open the httpd.conf file. In XAMPP, this file is found in the \apache\conf directory
Locate the following line of code:
#LoadModule rewrite_module modules/mod_rewrite.so
Remove the # from the line as seen below to enable the module:
LoadModule rewrite_module modules/mod_rewrite.so
Save the httpd.conf file and Restart your server
Restart your Apache Server
答案 2 :(得分:0)
根据AccessFileName设置,您的本地Apache安装可能使用其他名称,例如_htaccess。 此外,请确保AllowOverride指令未设置为无。
中找到更多文档答案 3 :(得分:0)
RewriteCond %{HTTP_HOST} ^mydomain.com [NC]
如果主持人[以(^)] mydomain.com开头,
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]
将其重写为http://www.mydomain.com/$1
RewriteCond %{HTTP_HOST} !mydomain.com [NC]
如果主持人不是(!)mydomain.com,