tej pory robiłem to:Użytkownika przyjazne adresy URL - MOD przepisujące i php przekierowania
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?load=$1 [QSA,L]
Wtedy na mojej stronie indeksu (w katalogu głównym) Używam PHP aby ustalić, która strona do obciążenia:
// Swap to variables
$load = $_GET['load'];
// Home page
if (!$load || $load == "") { include('home.php'); exit(); }
// Dashboard
if ($load == "dashboard") { include('dashboard.php'); exit(); }
// About
if ($load == "about") { include('about.php'); exit(); }
// Username
$data_array = array(':username' => $load);
$select_account = $connect->prepare("SELECT * FROM `users` WHERE `username` = :username");
$select_account-> execute($data_array);
$account_amount = $select_account->rowCount();
if ($account_amount > 0) { include('profile.php?name=$load'); exit(); }
// Redirect to 404 if there are no results
include('404.php'); exit();
Wszystko dotąd działa, ale użytkownicy mogą przesyłać zdjęcia do galerii i chcę je oglądać tak:
www.mysite.com/[username]/gallery/
ale jeśli wpisałeś to jako adres URL, a przepisanie brzmi: [username]/gallery/
jako jedna sekcja, co oznacza $load = [username]/gallery
, co dałoby mi "404".
Nie ma chyba lepsze rozwiązanie do uzyskania pożądanych wyników, ale nie jestem zbyt dobry z .htaccess i przepisywanie. Chciałbym dodać, że lubię ten przepisać zbyt ponieważ mam podkatalogi zwane signup
i signin
których oba mają w nich zbyt podkatalogów, ale jeśli pójdę do adresu URL:
www.mysite.com/signup
www.mysite.com/signin
on ignoruje przepisać i idzie do katalogu, zamiast uruchamiać go poprzez instrukcje $load
, czego chcę.
także, aby pamiętać, że na rejestracji konta dowolną nazwę użytkownika, która pasuje ciągi takie jak dashboard
lub about
etc to nie pozwala im go używać, to zatrzymuje się nazwy użytkowników i $load
if/else i ich obejmuje mieszane up itp
EDIT
Inną rzeczą zapomniałem zwrócić uwagę na to, ponieważ mogą one wywołać galerię co im się podoba, to musi zrobić wyszukiwania, aby sprawdzić, czy galeria istnieje, więc na przykład:
www.mysite.com/username/my+first+album
Byłoby najpierw trzeba sprawdzić nazwę użytkownika istnieje, a następnie zaznacz album istnieje, a następnie wyświetlać je, jeśli to robi lub 404/przekierować do gdziekolwiek, czy nie. Zasadniczo oba parametry/zapytania będą dynamiczne. Nie tylko to, ale potem poszczególne zdjęcia w tym albumie trzeba pracować tak samo, na przykład:
www.mysite.com/username/my+first+album/my+picture
Mam nadzieję, że sens ...
Trochę podniosłem wzrok na temat tego adresu URL, nigdy o nim nie słyszałem, ale wymyśliłem przyjemny sposób wykorzystania jego fragmentów, a także kilka pomysłów z odpowiedzi, które zarówno ja, jak i sally daliśmy mi. . Mam zamiar napisać to w odpowiedzi, aby pokazać, jak mam działa. +1 za pomoc! – Joe