2013-03-22 85 views
0

我有一个网站,我的工作就和刚才的表现国防部重写这样的URL cuadmemo.com/posts.php?title=abctitle写入cuadmemo.com/abctitle.htmlMod用重写?在URL

我的问题当你有一个标题?在其中标记。您点击链接

http://www.cuadmemo.com/Are You Doing All You Can to Protect Your Members From Wire Fraud?.html 

它显示为未找到?我知道那个?是导致问题的原因。我写在PHP中,并有这种格式的链接(从数据库中提取)

下面是我用来编写语句的php代码。

echo "<a name='description' href='http://www.cuadmemo.com/{$row_oneBack['title']}.html'>". $row_oneBack['title'] . '</a>'; 

我使用的重写代码

RewriteRule (.*)\.html /posts.php?title=$1 

任何建议,将不胜感激。提前致谢。

回答

0

这不是一个非常安全的网址。你应该做这样的事情,而不是; Are_You_Doing_All_You_Can_to_Protect_Your_Members_From_Wire_Fraud.html

+0

权本来我它是从数据库中的id中拉出来的,这个数据库写得像cuadmemo.com/posts.php?id=123,但希望它更像是一个WordPress的博客,它会重写它来显示url中的标题。不知道如何走这条路。因此,使用cuadmemo.com/posts.php?title=whatevertitlenameis – StevoBot 2013-03-22 19:50:59

+0

@StevoBot这是一个好主意,但是你应该做这样的事情来保持ID在重写; example.com/post/123/TITLEWHATEVER.html这样你可以使用IDNumber后的任何字符 – 2013-03-22 19:52:50

0

因为你有一个问号? Apache是​​误以为你想拥有的东西像$_GET['.html']因此,您的网址被切断。

看来你的CMS/php正在寻找$_GET['title']。如果你想有questionmarks,你应该有它的看待和分析$_SERVER['REQUEST_URI']

你可以采取这样的:

# infile .htaccess 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

,然后寻找你的查询,像这样:

http://example.com/test/page?is=ok&has=get-params 

// infile: index.php 
// var_dump($_SERVER['REQUEST_URI']); 
// you will get string '/test/page?is=ok&has=get-params' (length=41) 
+0

因此,当我从数据库中提取信息时,我应该通过$ _SERVER ['REQUEST_URI' ]? – StevoBot 2013-03-25 13:20:54

+0

如果你选择保持链接创建的方式,那么使用上面的代码,你将在'$ title = $ _SERVER ['REQUEST_URI'];'' – 2013-03-25 14:35:48