Php mod_rewrite-添加中间层目录
页面当前可在以下地址获得:Php mod_rewrite-添加中间层目录,php,.htaccess,mod-rewrite,expressionengine,Php,.htaccess,Mod Rewrite,Expressionengine,页面当前可在以下地址获得: http://www.domain.co.uk/solutions/article/page-name1 http://www.domain.co.uk/solutions/article/page-name2 http://www.domain.co.uk/solutions/article/page-name3 etc …但我希望他们可以通过以下地址访问,以增强搜索引擎优化: http://www.domain.co.uk/solutions/page-name
http://www.domain.co.uk/solutions/article/page-name1
http://www.domain.co.uk/solutions/article/page-name2
http://www.domain.co.uk/solutions/article/page-name3
etc
…但我希望他们可以通过以下地址访问,以增强搜索引擎优化:
http://www.domain.co.uk/solutions/page-name1
http://www.domain.co.uk/solutions/page-name2
http://www.domain.co.uk/solutions/page-name3
因此,我想在站点根目录的.htaccess文件中使用mod_rewrite,在每个传入页面请求的解决方案目录之后添加“article”目录。我一直在寻找一个合适的答案大约一个月了,我已经尝试学习了mod_重写基础教程,但我就是不能让这对我的工作,所以为另一个mod_重写问题道歉
这是我目前的.htaccess文件:
<IfModule mod_rewrite.c>
RewriteEngine On
# Removes index.php
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
# If 404s, "No Input File" or every URL returns the same thing
# make it /index.php?/$1 above (add the question mark)
</IfModule>
重新启动发动机
#删除index.php
重写秒$1!\。(gif | jpe?g | png)$[NC]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$/index.php/$1[L]
#如果404s,“无输入文件”或每个URL返回相同的内容
#将其设置为/index.php?/$1以上(添加问号)
编辑:
试试这个:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^solutions/article/
RewriteRule ^solutions/(.*)$ /solutions/article/$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !\.(gif|jpe?g|png)$ [NC]
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
重新启动发动机
重写cond%{REQUEST_URI}^解决方案/文章/
重写规则^solutions/(.*)$/solutions/article/$1[L,QSA]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写条件%{REQUEST\u FILENAME}!\。(gif | jpe?g | png)$[NC]
重写规则^(.*)$/index.php/$1[L]
编辑:
试试这个:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^solutions/article/
RewriteRule ^solutions/(.*)$ /solutions/article/$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !\.(gif|jpe?g|png)$ [NC]
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
重新启动发动机
重写cond%{REQUEST_URI}^解决方案/文章/
重写规则^solutions/(.*)$/solutions/article/$1[L,QSA]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写条件%{REQUEST\u FILENAME}!\。(gif | jpe?g | png)$[NC]
重写规则^(.*)$/index.php/$1[L]
我正在我的一个网站上做类似的事情。下面是我用来删除index.php并显示缩短url的.htaccess规则:
RewriteEngine On
# Removes index.php
RewriteCond $1 !\.(css|js|gif|jpe?g|png|ico) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1
RewriteCond %{REQUEST_URI} ^/solutions/(.*) [NC]
RewriteRule ^(.*) /solutions/article/%1 [L]
请记住,您在浏览器地址栏中看到的URL不是ExpressionEngine将{segment_2}视为“文章”的URL。我正在我的网站上做类似的事情。下面是我用来删除index.php并显示缩短url的.htaccess规则:
RewriteEngine On
# Removes index.php
RewriteCond $1 !\.(css|js|gif|jpe?g|png|ico) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1
RewriteCond %{REQUEST_URI} ^/solutions/(.*) [NC]
RewriteRule ^(.*) /solutions/article/%1 [L]
请记住,您在浏览器地址栏中看到的URL不是ExpressionEngine将{segment_2}视为“文章”的URL。谢谢您的回复。我将它添加到我的mod_重写代码中,但它似乎没有任何影响。可能缺少“RewriteEngine On”吗?我尝试了url:内容不在那里。它仍然可以在原始地址上使用:My.htaccess文件是这样的:
\35;删除index.php
RewriteCond%{REQUEST_FILENAME}-f
重写cond%{REQUEST_FILENAME}-d
RewriteRule^(.*)$/index.php/$1[L]
#如果是404s,“没有输入文件”或每个URL返回相同的内容
#将其设置为/index.php?/$1以上(添加问号)
重写COND%{REQUEST\u URI}^solutions/article/
重写规则^solutions/(.*)$/solutions/article/$1[L,QSA]
您添加的最后两行与以前的规则冲突,您必须将它们放在它之前(将它们放在重写引擎上的
行之后)谢谢您的回复。我将它添加到我的mod_重写代码中,但它似乎没有任何影响。可能缺少“RewriteEngine On”吗?我尝试了url:内容不在那里。它仍然可以在原始地址上使用:My.htaccess文件是这样的:
\35;删除index.php
RewriteCond%{REQUEST_FILENAME}-f
重写cond%{REQUEST_FILENAME}-d
RewriteRule^(.*)$/index.php/$1[L]
#如果是404s,“没有输入文件”或每个URL返回相同的内容
#将其设置为/index.php?/$1以上(添加问号)
重写COND%{REQUEST\u URI}^solutions/article/
重写规则^solutions/(.*)$/solutions/article/$1[L,QSA]
您添加的最后两行与以前的规则冲突,您必须将它们放在它之前(将它们放在重写引擎之后的第
行)对于SEO来说,/solutions/article/page-name3确实没有什么错,你可以用像/?article\u id=9566这样的url轻松地将你的SEO url排名超过10倍,页面内容+页面标题+良好的反向链接都非常好。谢谢,不过我知道这一点。这些网页已经存在,并且在web上处于活动状态。新站点(在新平台上)是由一位网络开发者创建的,我正在尝试更正url,这样当它上线时,我们就不必实施太多的301重定向,这通常会对SEO产生影响。对于SEO来说,/solutions/article/page-name3确实没有什么错,而且可以很容易地将您的SEO url排名超过10倍/?article_id=9566,在页面内容+页面标题+良好的反向链接方面具有惊人的优势。谢谢,不过我知道这一点。这些网页已经存在,并且在web上处于活动状态。一个新的网站(在一个新的平台上)是由一个web开发人员创建的,我正在尝试更正url,这样当它上线时,我们就不必实施太多的301重定向,这通常会对SEO产生影响。