![服务器重写不再有效](https://linux22.com/image/746680/%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%87%8D%E5%86%99%E4%B8%8D%E5%86%8D%E6%9C%89%E6%95%88.png)
几个月来,我一直在 .htaccess 文件中使用下面的服务器命令,没有任何问题,但昨天,突然,每当我尝试从网站主页导航到其他页面,或尝试浏览 Magento 管理设置页面时,我都会看到一个几乎空白的屏幕,上面写着“未指定输入文件”。我查看了浏览器控制台,它将错误列为“无法加载资源:服务器响应状态为 404()“。
经过一番研究,我确定这是由 public_html/.htaccess 文件中的重定向命令引起的。
我在 Magento 的催促下添加了重定向,以便不让“公众”看到/或使用敏感的 Magento 文件。(我没有以任何方式使用 GoDaddy 托管或服务器)。我从 BlueHost 或 DreamHost 网页获取了重定向命令。
我尝试添加“?”并从某些命令中删除“/”,但只会显示新的错误。
我还注释掉了重定向命令,以便我能够浏览整个网站和 Magento 管理设置页面。
有人能告诉我需要使用什么命令才能使重定向正常工作,以及 .htaccess 命令的作用指南吗?
非常感谢。
RewriteBase /public_html/pub
# Rewrites all URLs without pub in them
RewriteCond %{REQUEST_URI} !^/pub/
# Rewrites all URLs
RewriteCond %{HTTP_HOST} ^(www\.)?abc\.
# Rewrite all those to insert /folder
RewriteRule ^(.*)$ /pub/$1 [L]
答案1
上帝的奇迹让重写工作顺利了好几个月(重写新手无知)。但现在,就在我启动电子商务业务之前,他帮助我发现了错误。现在要找出我的 MySQL 表出了什么问题。
我的原始代码缺少一些必要元素。
以下是工作“代码”及其外观:
RewriteBase /public_html/pub
# Rewrites all URLs without pub in them
RewriteCond %{REQUEST_URI} !^/pub/$
# Rewrites all URLs # I originally used "abc" instead of my domain name
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
# Rewrite all those to insert /folder
RewriteRule ^(.*)$ /pub/$1 [L]
上述元素的含义如下:
! = negative/don't/not
\ = escape character
(.*) appears to be a wilcard to get all URL to go to the %{HTTP_HOST} rewritten location
NC = Case insensitive, that is not case sensitive
L = Last (end of line/commands)- stop processing rules
^ = Start of the string
$ = End of the string
%{HTTP_HOST} = one of a few HTTP Headers
%{REQUEST_URI} = a kind of a special server variable that makes a request
1 appears to be shorthand for 301 which means "Moved permanently" as in rewrite these things permanently
? appears to be a URL break point, a domain name signifier, a subdirectory marker, or all of the above
我在这里找到了包含这些命令和其他命令的备忘单:http://www.cheatography.com/davechild/cheat-sheets/mod-rewrite
我希望这一切能够帮助其他重写新手。
谢谢大家。