我的Larvel 5.1
项目运行得非常好。让我们说它是在http://www.example.com
举办的。当我转到此address
时,它的工作非常精细,并且URL中没有public/
是必需的。现在唯一的问题是,如果有人前往http://www.example.com/public/
explcitly,他看到主页内容没有任何CSS和JS加载,这对SEO完全不利,因为它将被视为重复的网站。我尝试过在互联网上搜索,但每个人都在回答如何从网址中删除public/
,但就我而言,它已被删除。如果他明确地去那里,我只是不希望用户看到public/
内的内容。有没有办法实现这个目标?我也会在这里发布我的.htaccess
文件。它有很多代码,用于启用缓存,在域中添加www.
。请帮我解决这个问题。我完全卡住了。
这是我的.htaccess
文件内容
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
## EXPIRES CACHING ##
<IfModule mod_expires.c>
AddType application/vnd.ms-fontobject .eot
AddType application/x-font-ttf .ttf
AddType application/x-font-opentype .otf
AddType application/x-font-woff .woff
AddType image/svg+xml .svg
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
# Add a far future Expires header for fonts
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
ExpiresByType application/x-font-ttf "access plus 1 year"
ExpiresByType application/x-font-opentype "access plus 1 year"
ExpiresByType application/x-font-woff "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresDefault "access plus 1 week"
</IfModule>
## EXPIRES CACHING ##
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
答案 0 :(得分:0)
它源于我认为懒惰的设计决策,允许所有目录和文件成为入口点。 WordPress做同样的事情。你可以像这样解决它:
# Handle Front Controller...
RewriteCond $0 =public [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[^/]* index.php [L]
这应该忽略仅/public/
的目录检查并保持其他功能不变。
答案 1 :(得分:-1)
在root create .htaccess页面中,包含以下内容。
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>