Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mod_rewrite-添加中间层目录_Php_.htaccess_Mod Rewrite_Expressionengine - Fatal编程技术网

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产生影响。