我已经在我建立的所有Laravel网站上解决此问题已有相当长的时间了,我发现当我将index.php分段添加到该站点时,仍然可以访问我的站点路由,例如当我使用此链接访问我的站点时-https://alawi.ng/how-it-works,当我在路径名称示例https://alawi.ng/index.php/how-it-works之前添加index.php时,该链接也可以访问。此问题似乎没什么大不了的,它对我的网站SEO排名有影响,导致路线或内容重复,请寻求帮助。
这是我的网站.htaccess中的内容
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# 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]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule ^ - [F]
<Files .env>
order allow,deny
Deny from all
</Files>
</IfModule>
这是我的web.config文件中的内容
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^(.*)/$" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="/{R:1}" />
</rule>
<rule name="Imported Rule 2" stopProcessing="true">
<match url="^" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
我想要一种情况,即通过该方法要么将用户重定向到实际的URL,然后从其中删除index.php-因此,当用户尝试访问https://alawi.ng/index.php/how-it-works时,他们将重定向到https://alawi.ng/how-it-works存在,如果不存在,那么我已经创建的404页面。
PS:我正在使用Linux服务器,共享主机,并将存储文件夹设置为775。
谢谢。
答案 0 :(得分:1)
恕我直言,只有Google知道包含index.php
的URL时,这才是问题。
如果您想安全起见,可以:
index.php
的URL。RewriteEngine on
下方: # Remove 'index.php'
RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule (.*?)index\.php/?(.*)?$ /$1$2 [R=301,NE,L]
此配置将从所有URL中删除index.php
并重定向用户。