Home > Backend Development > PHP Tutorial > 关于伪静态的写法,请教高手帮忙

关于伪静态的写法,请教高手帮忙

WBOY
Release: 2016-06-23 14:02:51
Original
980 people have browsed it

我使用apache作为服务器,安装wordpress,

现在写了一个自定义的链接

做出来是:http://127.0.0.1/wordpress/go/index.php?pid=399
但我想变为http://127.0.0.1/wordpress/go/399.html

听说要写伪静态,请高手帮忙哈


回复讨论(解决方案)

RewriteRule ^wordpress/go/([0-9]+)\.html$ wordpress/go/index.php?pid=$1 [L]

楼上的朋友,我设置了怎么不起作用哈?


# BEGIN WordPress

# Link Cloaker Plugin BEGIN

RewriteEngine On
RewriteRule ^goto/([^/]*)/([0-9]+)/([0-9]+)/?$ http://127.0.0.1/wordpress/wp-content/plugins/link-cloaking-plugin/wplc_redirector.php?post_id=$2&link_num=$3&cloaked_url=$0 [L]
RewriteRule ^goto/([^/]+)[/]?$ http://127.0.0.1/wordpress/wp-content/plugins/link-cloaking-plugin/wplc_redirector.php?name=$1&cloaked_url=$0 [L]

# Link Cloaker Plugin ENDS


RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
RewriteRule ^go/([0-9]+)\.html$ wordpress/go/index.php?pid=$ [L]


# END WordPress

我现在将网站放在根目录下
网址为:http://127.0.0.1/

安装好默认的wordpress的伪静态自动生成一个.htaccess文件

内容为

<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule>
Copy after login


现在我改为3楼说的:
<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule>RewriteEngine OnRewriteBase /RewriteRule ^go/([0-9]+)\.html$ go/index.php?pid=$1[L] 
Copy after login


怎么不生效哈

我要的效果是
http://127.0.0.1/go/index.php?pid=399 变成
http://127.0.0.1/go/399.html

不要做无谓的尝试!
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
将所有的访问都定向到了 index.php

这是他设计好的伪静态运行方式,不能改动
既然你要用 WordPress ,就得按他的规矩来

在网站根目录建立一个 .htaccess 的文件,内容为

RewriteEngine on# 修改以下语句中的 / 为网站目录地址,如果程序放在根目录?修改为 /RewriteBase /RewriteRule ^wordpress\/go\/([0-9]+)\.html$ wordpress/go/index.php?pid=$1 [NC]
Copy after login


试试看

那怎么办,我自己写了一个自定义的链接参数,难道这个就无法伪静态了吗?

在网站根目录建立一个 .htaccess 的文件,内容为
CSS code?1234567RewriteEngine on # 修改以下语句中的 / 为网站目录地址,如果程序放在根目录?修改为 /RewriteBase / RewriteRule ^wordpress\/go\/([0-9]+)\.html$ wordpress/go/index.php?pid=$1……

我的站现在是
http://127.0.0.1/go/index.php?pid=399 变成
http://127.0.0.1/go/399.html

如何去掉wordpress?

在网站根目录建立一个 .htaccess 的文件,内容为
CSS code?1234567RewriteEngine on # 修改以下语句中的 / 为网站目录地址,如果程序放在根目录?修改为 /RewriteBase / RewriteRule ^wordpress\/go\/([0-9]+)\.html$ wordpress/go/index.php?pid=$1……

尝试过了,不行,我的站没有wordpress目录了,我修改为
RewriteRule ^go\/([0-9]+)\.html$ go/index.php?pid=$1 [NC]

不行

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^go/([0-9]+)\.html$ index.php?pid=$1 [L]


你要把 go/123.html 转到 index.php?pid=123是吧?试下这个

服务器要目录配置 rewrite

楼上的,根本一点作用没有,首先wordpress后台设置了固定链接,网站根目录自动产生一个.htaccess文件
内容为

# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /wordpress/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wordpress/index.php [L]  </IfModule>      # END WordPress
Copy after login


这时候如果你把后台固定链接取消,即使有.htaccess文件也不生效。

我就是在开启固定链接以后,在.htaccess文件中添加你的代码,然后依然无效,无语了,我的主机已经开启rewrite

为什么wordpress的.htaccess文件里面修改任何都无效啊?急死我了

你确定你的空间开启了.htaccess么!?

空间开启了?

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template