Я хотел бы знать, как переписать несколько параметров в / param1 / param2
Давайте предположим, что я включил файл с именем account.php с
http://myurl.com/index.php?p=account.
Работает просто отлично и переписывается
но скажем, я хочу иметь несколько параметров в account.php, как
http://myurl.com/index.php?p=account&настройки
который должен быть переписан так:
http://myurl.com/account/settings Как бы я это сделал?
.файл htacces:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
RewriteRule (.+) index.php?p=$1 [QSA,L]
</IfModule>
PHP-код для включения файлов:
$pages = array('products','about','impressum','home','support','solutions','mc','team','account');
$p = 'home';
if(isset($_GET['p'])) {
$p = $_GET['p'];
}
if(in_array($p, $pages)){
include 'includes/'.$p.'.php';
}
else {
include 'includes/home.php';
}
Я работаю с этим кодом на моем сайте, делает то, что вы ищете
RewriteEngine on
RewriteBase /
RewriteRule ^post/([^/]+)/([^/]+)$ single.php?post_type=$1&post_id=$2 [QSA]
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/?$ index.php\?p=$1&action=$2
RewriteRule ^([a-zA-Z]+)/?$ index.php\?p=$1
для каждого ([a-zA-Z]+)
он добавляет еще одно число к «результатам» .. $ 1, $ 2, $ 3 и т. д. Таким образом, вы можете добавить столько переписываний, сколько захотите … например, это одна из моих модификаций модов …
#WMS LIVE EDITOR
RewriteRule ^WMS/templateeditor/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ WMS/templateeditor.php\?p1=$1&p2=$2&p3=$3&p4=$4
RewriteRule ^WMS/templateeditor/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ WMS/templateeditor.php\?p1=$1&p2=$2&p3=$3
RewriteRule ^WMS/templateeditor/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ WMS/templateeditor.php\?p1=$1&p2=$2
RewriteRule ^WMS/templateeditor/([a-zA-Z0-9]+)/?$ WMS/templateeditor.php\?p1=$1
RewriteRule ^WMS/templateeditor/?$ WMS/templateeditor.php
на странице php, просто добавьте $_GET['action'];
а затем настройте свой php, где, если для страницы установлено действие, перейдите к этому действию (в данном случае, к настройкам).
Я просто использовал «действие» в качестве примера … это может быть то, что вы хотите.
RewriteEngine On
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/?$ index.php\?p=$1&$2
RewriteRule ^([a-zA-Z]+)/?$ index.php\?p=$1
мой php код для проверки результатов
$p = 'home';
if(isset($_GET['p'])) {
$p = $_GET['p'];
echo 'p:'. $p;
}
echo ' ';
if(isset($_GET['settings'])) {
echo 'yes';
}
я пошел в domain.com/profile/settings
и это повторило следующее: p:profile yes
крепление включает в себя
if(file_exists('rootDir.php')) { include_once ('rootDir.php'); }
if(file_exists('../rootDir.php')) { include_once ('../rootDir.php'); }
if(file_exists('../../rootDir.php')) { include_once ('../../rootDir.php'); }
if(file_exists('../../../rootDir.php')) { include_once ('../../../rootDir.php'); }
if(file_exists('../../../../rootDir.php')) { include_once ('../../../../rootDir.php'); }
if(file_exists('../../../../../rootDir.php')) { include_once ('../../../../../rootDir.php'); }
if(file_exists('../../../../../../rootDir.php')) { include_once ('../../../../../../rootDir.php'); }
Это поможет игнорировать «поддельные папки» в URL
// ---------------------------------------- http() ---- determine if http/https
if (!function_exists('http')) {
function http() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == 'on') {$pageURL .= 's';}
$pageURL .= '://';
return $pageURL;
}
}
это функция php, которая определяет, использует ли ваш сайт http: // или https: // для абсолютных путей
это функция, чтобы получить URL вашего сайта для абсолютных путей
// ---------------------------------------- parse URL ---- split URL into parts
$websiteurl = http() . $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI];
$website = parse_url($websiteurl);
$websitedomain = $website['host'];
if (strpos($websiteurl, '~') !== FALSE) {
$subweb = explode('/', $websitedomain . $_SERVER[REQUEST_URI]);
$websitedomain = $subweb[0] .'/'. $subweb[1];
}
пример того, как добавить код на ваш сайт
<link rel="stylesheet" type="text/css" href="<?php echo http() . $websitedomain .'/WMS/css/style.css'; ?>"/>