2017-06-05 38 views
0

我目前在一个网站上工作,其中学生可以创建可以被其他人评论的文章如何显示GET参数作为新目录?

我已经开发了一个脚本来创建它们并将它们存储在一个mysql数据库中。

每一个这些文章应该可以在www.mydomain /用品/ XYZ/

,但我不想为每个人创造一个新的目录。那么是否可以像前面提到的那样传递参数article = xyz (www.maydomain/articles/articles.php&articles=xyz)

如果我的问题太复杂,我很抱歉。如果您有任何疑问,请不要犹豫与我联系! :)

回答

1

也许你可以做这样的事情与.htaccess文件。
可以每个页面重定向到您的index.php页面

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    DirectoryIndex index.php 
    RewriteBase/
    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-l 
    RewriteRule . /index.php [L] 
</IfModule> 

然后你就可以在你的php文件处理您的域:

<?php 

/* 
Example URL 
$url = www.maydomain/articles/querystring/articles/xyz/param2/value2/param3/value3 
$url = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 
*/ 

$url = "www.maydomain/articles/querystring/articles/xyz/param2/value2/param3/value3"; 
$url = explode("/querystring/", $url); 

/* 
Where $url[0] is (www.maydomain/articles), 
and $url[1] is the rest of it (queryqtring/articles/xyz/param2/value2/param3/value3) 
*/ 

// If you need you can include your page articles on your index page like this 
$page_name = explode("/", $url[0]); 
$page_name = end($page_name); 
include("/path to your directory/". $page_name .".php"); 

$query_string = $url[1]; 
// And one more explode for query string: 
$query_params = explode("/", $query_string); 


for($i=0; $i<count($query_params); $i++) 
{ 
    // odd value is GET name 
    $key = $query_params[$i]; 
    // even value is GET value 
    $value = (isset($query_params[$i+1])) ? $query_params[$i+1] : ""; 
    $_GET[$key] = $value; 
    $i++; 
} 

echo "<pre>"; 
print_r($_GET); 
echo "</pre>"; 

/* 
// GET Output 
Array 
(
    [articles] => xyz 
    [param2] => value2 
    [param3] => value3 
) 
*/ 

?> 
+0

非常感谢你,但是这看起来很复杂,像一个新人我.. –

+0

@史密斯事情你需要的不是很简单。这是完整的复制/粘贴解决方案。在你的根文件夹下,用我的示例代码创建'.htaccess'文件,并将这个php代码放在你的'index.php'页面上,其中'index.php'和'.htaccess'必须位于同一个根文件夹中。 –

+0

好的,它是'.htaccess.txt'吗? –