网站网址显示服务器文件夹结构

时间:2016-07-19 21:57:36

标签: .htaccess url-rewriting

昨天我不小心取代了我们网站的htaccess文件并搞砸了几件事。我已经能够将该网站重新上线,但是,现在,my site在所有网站页面的URL中显示了服务器的文件夹结构。

所需:

http://gemdigitalagency.com/our-services

显示的内容:

https://gemdigitalagency.com/production/gemdigitalagency/our-services/

我想从网址中删除/ production / gemdigitalagency。

这是我对htaccess的拥有(在public_html中托管):

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^gemdigitalagency\.com [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://gemdigitalagency.com/$1 [R,L]

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www.)?gemdigitalagency.com$
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /production/gemdigitalagency/$1 [L]
RewriteCond %{HTTP_HOST} ^(www.)?gemdigitalagency.com$
RewriteRule ^(/)?$ production/gemdigitalagency/index.html [L]

ErrorDocument 400 /404.html
ErrorDocument 401 /404.html
ErrorDocument 403 /404.html
ErrorDocument 404 /404.html
ErrorDocument 500 /404.html

Options -Indexes

有谁能请我指出正确的方向? 谢谢!

2 个答案:

答案 0 :(得分:1)

我们最终删除了一些内容,并在网站上的服务器上添加了一个htaccess文件夹内容。

public_html文件夹中的htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^gemdigitalagency\.com [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://gemdigitalagency.com/$1 [R,L]

ErrorDocument 400 /404.html
ErrorDocument 401 /404.html
ErrorDocument 403 /404.html
ErrorDocument 404 /404.html
ErrorDocument 500 /404.html

Options -Indexes

htaccess在网站的文件夹中:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^gemdigitalagency\.com [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://gemdigitalagency\.com/$1 [R,L]

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.gemdigitalagency\.com$ [NC]
RewriteRule ^(.*)$ https://gemdigitalagency\.com/$1 [R=301,L]

ErrorDocument 403 /404.html
ErrorDocument 404 /404.html
ErrorDocument 500 /404.html

答案 1 :(得分:0)

这会将用户重定向到SSL安全网络http://...https://

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^gemdigitalagency\.com [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://gemdigitalagency.com/$1 [R,L]

这是你的主要问题

RewriteRule ^(.*)$ /production/gemdigitalagency/$1 [L]
RewriteRule ^(/)?$ production/gemdigitalagency/index.html [L]

告诉apache重写主机www.gemdigitalagency.com上的所有内容或gemdigitalagency.com(www是可选的)

RewriteCond %{HTTP_HOST} ^(www.)?gemdigitalagency.com$

使用URI中的更多内容

RewriteCond %{REQUEST_URI} !/$

这不是实际的文件名或目录

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

重写为/production/gemdigitalagency/$1,其中$1是主持人(https://gemdigitalagency.com/something?get_param=1)背后的任何内容,$1something?get_param=1,例如

尝试将其更改为:

RewriteEngine On 
RewriteBase /

RewriteCond %{HTTP_HOST} ^gemdigitalagency\.com [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://gemdigitalagency.com/$1 [R,L]

RewriteCond %{HTTP_HOST} ^(www.)?gemdigitalagency.com$
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /$1 [L]

RewriteCond %{HTTP_HOST} ^(www.)?gemdigitalagency.com$
RewriteRule ^(/)?$ /index.html [L]

ErrorDocument 400 /404.html
ErrorDocument 401 /404.html
ErrorDocument 403 /404.html
ErrorDocument 404 /404.html
ErrorDocument 500 /404.html

Options -Indexes