服务器重写不再有效

服务器重写不再有效

几个月来,我一直在 .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 insens​itive, 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 perman​ently" 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

我希望这一切能够帮助其他重写新手。

谢谢大家。

相关内容