Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

έχω δημιουργήσει σε php ένα αρχείο που δημιουργεί σελίδες(addpage.php)

εκεί παίρνει τον τίτλο που δίνει ο χρήστης στην σελίδα και τον κάνει link

    $slug = generateSlug($title_en);
    $slugURL = 'http://localhost/cms/' . $slug;

μετά έχω δημιουργήσει ένα αρχείο insidepage.php που τραβάει το slug(έτσι ονόμασα και την στήλη στον πίνακα στην βάση) και εμφανίζει το περιεχόμενο της σελίδας

if (isset($_GET['slug'])) {
    $slug = $_GET['slug'];

    // Αναζήτηση της σελίδας με βάση το slug
    $sql = "SELECT * FROM pages WHERE slug = '$slug'";
    $result = $conn->query($sql);


επίσης με λίγο google search βρήκα ότι έπρεπε να δημιουργήσω και το .htaccess
 

RewriteEngine On
RewriteBase /cms/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ insidepage.php?slug=$1 [L,QSA]

το θέμα είναι πως όταν γράφω το http://localhost/cms/page-two
δεν μου εμφανίζει το περιεχόμενο της που είναι αποθηκευμένο στην βάση 
καμιά ιδέα του τι μπορεί να φταίει??

Δημοσ. (επεξεργασμένο)
15 ώρες πριν, node7 είπε

Κοίταξε αν το mod_rewrite ειναι απενεργοποιημένο.

το έψαξα μετά την ανάρτηση σου και άπο ότι κατάλαβα έπρεπε να αφαιρέσω την # από το  LoadModule rewrite_module modules/mod_rewrite.so αλλά όταν το βρήκα στο  httpd.conf στον φάκελο C:\xampp\apache\conf δεν είχε # οπότε υποθέτω είναι ενεργοποιημένο(είναι ακριβώς έτσι LoadModule rewrite_module modules/mod_rewrite.so).

Θα μπορούσες να είναι κάτι άλλο??


edit 

εαν μπορείς τσέκαρε το παρακάτω

 

στο addpage.php έχω το εξής

    $slug = generateSlug($title_en);
    $slugURL = 'http://localhost/cms/' . $slug;

στο insidepage.php έχω το εξής

if (isset($_GET['slug'])) {
    $slug = $_GET['slug']; 

όταν στο insidepage.php πρόσθεσα το echo $slug; μου εμφάνισε αυτό που αποθηκεύετε εδώ
 $slug = generateSlug($title_en);(δηλαδή page two)

έχω κάνει ή καταλάβει κάτι λάθος???

Επεξ/σία από CreedChronicles
Δημοσ.

Απ' ότι καταλαβαίνω το rewrite δουλεύει. Μήπως να κάνεις ένα redirect στη σελίδα που θες;

header('Location:'. $slugURL);
die();

Ισως και να κοιτάξεις ξανά τον κανόνα στο .htaccess, γιατί φαίνεται πολύ γενικός. Εννοώ αυτή τη γραμμή:

RewriteRule ^(.*)$ insidepage.php?slug=$1 [L,QSA]

Κοίταξε και το rewritemap.

 

Δημοσ.
5 λεπτά πριν, node7 είπε

Απ' ότι καταλαβαίνω το rewrite δουλεύει. Μήπως να κάνεις ένα redirect στη σελίδα που θες;

header('Location:'. $slugURL);
die();

Ισως και να κοιτάξεις ξανά τον κανόνα στο .htaccess, γιατί φαίνεται πολύ γενικός. Εννοώ αυτή τη γραμμή:

RewriteRule ^(.*)$ insidepage.php?slug=$1 [L,QSA]

Κοίταξε και το rewritemap.

 

πριν λίγο δοκίμασα να αλλάξω στο httpd.conf
από 
<Directory />
    AllowOverride none
    Require all denied
</Directory>

το έκανα 
<Directory "C:/xampp/htdocs/cms">
    AllowOverride All
    Require all granted
</Directory>

αλλά τίποτα
τώρα θα δοκιμάσω αυτό που μου είπες και θα επανέλθω 

13 λεπτά πριν, node7 είπε

Απ' ότι καταλαβαίνω το rewrite δουλεύει. Μήπως να κάνεις ένα redirect στη σελίδα που θες;

header('Location:'. $slugURL);
die();

Ισως και να κοιτάξεις ξανά τον κανόνα στο .htaccess, γιατί φαίνεται πολύ γενικός. Εννοώ αυτή τη γραμμή:

RewriteRule ^(.*)$ insidepage.php?slug=$1 [L,QSA]

Κοίταξε και το rewritemap.

 

δοκίμασα αυτό αλλά το ίδιο 
 

if (isset($_GET['slug'])) {
    $slug = $_GET['slug'];
    $slugURL = 'http://localhost/cms/' . $slug;
    header('Location: '. $slugURL);

μήπως φταίει ότι δεν έχω ένα αρχείο index.php και τα κάνει όλα στο inside.php??
επίσης στο C:\xampp\apache\logs στο error δεν εμφανίζει κάποιο σφάλμα

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...