云7 php url重写,用htaccess已经试过了每一件事,我没有试过自杀

云7 php url重写,用htaccess已经试过了每一件事,我没有试过自杀,php,regex,.htaccess,Php,Regex,.htaccess,这是我的箱子 我对regexp不太在行,我避免它就像它是一种疾病一样 我已经浏览了谷歌上的每一个结果,现在我在gooding上搜索“如何自杀和快速死亡”我真的需要你的帮助 我需要删除扩展名并重写查询字符串 这样www.example.com/story.php?pcord=$1->看起来就像www.example.com/story/%1 请注意,当我的意思是%1时,我不希望pcord重新出现在url上 例如,我想www.example.com/story.php?pcord=4849AAS84

这是我的箱子

我对regexp不太在行,我避免它就像它是一种疾病一样 我已经浏览了谷歌上的每一个结果,现在我在gooding上搜索“如何自杀和快速死亡”我真的需要你的帮助 我需要删除扩展名并重写查询字符串

这样
www.example.com/story.php?pcord=$1
->看起来就像
www.example.com/story/%1

请注意,当我的意思是
%1
时,我不希望pcord重新出现在url上

例如,我想
www.example.com/story.php?pcord=4849AAS84
应该是这样的

www.example.com/story/4849AAS84

下面是我尝试过使用的代码,但不起作用,只是删除了扩展

 Options +FollowSymLinks -MultiViews
 Turn mod_rewrite on
 RewriteEngine On
 RewriteBase /


 ## hide .php extension snippet


 # To externally redirect /dir/foo.php to /dir/foo
 RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
 RewriteRule ^ %1 [R,L]

 # To internally forward /dir/foo to /dir/foo.php
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{DOCUMENT_ROOT}/$1.php -f
 RewriteRule ^(.*?)/?$ $1.php [L]

用于
.htaccess

在这里,我们将从查询字符串中捕获值作为
%1
,然后将以
story.php
开头的相对url重写到名为
story
的文件夹中,后面是捕获的字符串。然后,我们将
添加到新指令的末尾,以停止对未创建新查询字符串的字符串执行
[QSA]
(查询字符串附加)的默认性质。要使其成为永久重写,请添加
[R]
标志:

#External Redirect
RewriteCond %{QUERY_STRING} pcord=([A-Za-z0-9]+) 
RewriteRule ^story.php story/%1? [R=301,L]
如果您需要让它神奇地将var发送回原始字符串,那么您需要以相反的方式捕获它注意:此处不使用[R]标志,因为这会告诉浏览器重定向。

#Internal Forward
RewriteRule ^story/([A-Za-z0-9]+) story.php?pcord=$1 [L]
请记住,如果您已经尝试使用
[R=301]
指令,它可能会缓存在浏览器中

现在,在PHP中,您应该能够使用
$\u GET['pcord']
访问
pcord

.htaccess
的最终代码如下:

RewriteEngine On
RewriteBase /

#External Redirect
RewriteCond %{QUERY_STRING} pcord=([A-Za-z0-9]+) 
RewriteRule ^story.php story/%1? [R=301,L]

#Internal Forward
RewriteRule ^story/([A-Za-z0-9]+) story.php?pcord=$1 [L]

RewriteCond %{REQUEST_FILENAME} !^story
RewriteCond %{REQUEST_FILENAME} \.php$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#Create the External Redirect for all existing .php files that are not story.php
RewriteRule ^([^/]+)\.php$ $1/ [R=301,L]

#Create the internal forward that maps them back in hiding
RewriteCond %{REQUEST_FILENAME} ^([A-Za-z0-9]+)/?$    
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %1\.php -f
RewriteRule ^([^/]+)/?$ $1.php [L]

好。迅速升级;)是的,他们没有在选项前获得正确的间距。@绝对感谢您的快速响应,这是我第一次取得进展。。。url重写了,但页面就像一个无家可归的上帝,没有食物(css我所有的css样式都消失了。)我也认为js可能也消失了。请帮助我的朋友如果你还记得这个问题有两个维度,在所有的URL上,我通常需要在最后去掉.php:Di修复了css问题。。。刚刚将story.php中css的url更改为相对url…从style.css->@ChukwubuikemBlazeUbah以前从未这样做过,但我想这会起作用吗?最后一节?